私はjms msgをリッスンし、修正タグに応じて異なるクロニクルキューに書き込みます。FileChannel.lockは長い間実行されています
public void onEvent(InputEvent inputEvent) {
String msg = ((SimpleInputEvent) inputEvent).getMessage();
int start = msg.indexOf("\u000155=");
if (start == -1){
// dropping it
return;
}
char symbol = msg.charAt(start+4);
for (int i = m_ranges.length - 1; i >= 0; i --){
if (symbol >= m_ranges[i]){
m_appenders[i].writeText(msg);
break;
}
}
}
今、私はいくつかのパフォーマンステストを実行していると私はそれがプロファイル
のこの種を持っていることがわかりメインスレッドは、上記の機能を実行しています。 そして、FileChannel.lockが30秒間実行されているのがわかります!それが何をしているのか分かりません。このようなキューを作成しました
m_queues[j] = SingleChronicleQueueBuilder.binary(path + "_" + m_ranges[j]).build();
m_appenders[j] = m_queues[j].acquireAppender();
ありがとうございます!
より多くを読んだ後、私は、このテストでは到達することはありません512Mビットのブロックサイズを増加しました。しかし、私はまだ私のパフォーマンステストでボトルネックに達しています。特に、SARは、私はこのコードはで蹴ることはありませんcq4ファイルに書き込まれているだろう。しかし、私はまだ私のシステムでは、いくつかのボトルネックを見るよりも大きなにあるbufferSizeを増加
を示しています。 :私はSARをオンにすると、私は
5時05分41秒AM TPS RTPS wtpsパン/ sのbwrtn/sの .... 5時10分12秒AM 714.14 0.00 714.14 0.00 6901.01
05を参照してください5時41分AM DEV TPS rd_sec/S wr_sec/S avgrq-SZ avgqu-SZのawait svctm%utilの ... 5時10分12秒AM用のrootvg-LVAR 422.00 0.00 3376.00 8.00 0.10 0.23 0.00 0.20
何べき私は机の上に大きな書き込みを避けるために行うのですか?あなたは最近のLinuxを実行していると仮定すると、
OS /カーネルのバージョンとJavaのバージョンを教えてください。 –