4

log4jを使用する高速で大量のアプリケーションがあります。通常、SyslogAppenderを使用しており、これが最も軽量で最速のアペンダーであると考えています。しかし、大量のボリュームの下でSYSLOGからの高いCPU使用率が見られます(SYSLOG confのフィルタールールのため)。

FileAppenderの使用に切り替えたいと思うでしょう。問題は、これをlog4j AsyncAppenderと組み合わせて使用​​して、ディスクへのフラッシュ(強制)による一時停止を削除するかどうかです。

(アプリケーションは非常にレイテンシーに敏感なので、アペンダーが追加する可能性のあるレイテンシーを最小限に抑えたいと思います。)また-とにかく、SyslogAppenderがFileAppenderよりも本当に速いかどうかはわかりません(しかし、それは私が始めてからのやり方です)。

これについての考えをいただければ幸いです。

4

1 に答える 1

6

私は間違いなくAsyncAppenderを使用します。

低遅延のアプリケーションが標準のファイルアペンダーの使用を事実上停止するのを見てきました。確かに、彼らは共有ハードウェアとディスクで(OS)VMを使用していたため、1つのVMがディスクIOを独占し、ログに記録しようとしているときに他のVMを停止させることができました。

また、JMSへのロギングやその他の非同期戦略を検討することもできます。

于 2011-09-08T17:15:33.477 に答える