私はlog4j2 2.10.0を使用して、次のコードを持っている:cq4とログの両方が同じディレクトリに書き込みを行っているクロニクルキュー+ log4j2非同期ロガー
SingleChronicleQueue q = SingleChronicleQueueBuilder.binary(args[0]).blockSize(536870912).build();
ExcerptAppender a = q.acquireAppender();
char[] chars = "abcdefghijklmnopqrstuvwxyz".toCharArray();
StringBuilder sb = new StringBuilder();
Random random = new Random();
for (int i = 0; i < 1000; i++) {
char c = chars[random.nextInt(chars.length)];
sb.append(c);
}
String t = sb.toString();
for (int i = 0; i < 1000000; i ++) {
m_logger.info(i + " " + t);
a.writeText(t);
}
を。
そして、私はそれが6秒遅れ作られたIO操作のいくつかの並べ替えがあります
12:40:00.853 - [main] INFO c.c.c.a.r.SandboxApp 601049
12:40:00.853 - [main] INFO c.c.c.a.r.SandboxApp 601050
12:40:00.853 - [main] INFO c.c.c.a.r.SandboxApp 601051
12:40:06.156 - [main] INFO c.c.c.a.r.SandboxApp 601052
見ることができるまで、ログには、それは罰金を爆破されました。
私はwriteTextをコメントアウトすると消えてしまいますが、それはクロニクルの問題かlog4j2か分かりません。
マイlog4j2パラメータは
-DLog4jContextSelector = org.apache.logging.log4j.core.async.AsyncLoggerContextSelector -DAsyncLogger.RingBufferSize = 65536 * 65536 -DAsyncLogger.WaitStrategy =スリープ-Dlog4j2.AsyncQueueFullPolicy =廃棄-Dlog4j2です.DiscardThreshold = INFO
はここでプロファイラが
感謝を示しているものです!
よろしくお願いいたします。私はより速いディスクを見つけました、そして問題はなくなりました。だから私は以前のマウント/ドライブが遅すぎると思っています。ありがとう!私はパフォーマンスをチューニングします!万が一、これらのことを調べるための参照/ウェブサイト/書籍がありますか? – Mag