私はUbuntu 10.10(32ビット、ext4パーティションを含む)を実行しているMacbook ProでActiveMQを実行しています。
Linux iker-laptop 2.6.35-23-generic-pae #40-Ubuntu SMP Wed Nov 17 22:32:51 UTC 2010 i686 GNU/Linux
ActiveMQで永続性を有効にすると、パフォーマンスが大幅に低下します。私は他のコンピュータで同じことをテストしましたが、その違いは2倍程度でした。
HDをテストするためのactiveMQツールがあり、結果は次のとおりです。
iker@iker-laptop:~/apps/apache-activemq-5.4.1$ java -classpath lib/kahadb-5.4.1.jar org.apache.kahadb.util.DiskBenchmark
Benchmarking: /home/iker/apps/apache-activemq-5.4.1/disk-benchmark.dat
Writes:
146171 writes of size 4096 written in 11.074 seconds.
13199.477 writes/second.
51.560455 megs/second.
Sync Writes:
197 writes of size 4096 written in 10.006 seconds.
19.688187 writes/second.
0.07690698 megs/second.
Reads:
5589861 reads of size 4096 read in 10.001 seconds.
558930.2 writes/second.
2183.321 megs/second.
同期書き込み性能は不便です。一部の設定が間違っている可能性がありますが、HDパフォーマンスの問題が見つかった唯一のアプリはこのアプリです。
hdparm は期待値を生成します。
iker@iker-laptop:~$ sudo hdparm -tT /dev/sda
/dev/sda:
Timing cached reads: 6282 MB in 2.00 seconds = 3141.73 MB/sec
Timing buffered disk reads: 240 MB in 3.00 seconds = 79.88 MB/sec
ベストアンサー1
同期IOの主な制限要因は、ハードディスクのスループットではなく、書き込みが実行されてからディスクにコミットされるまでの時間です。この点で、ハードドライブと最も関連性の高いパフォーマンス指標は理想的なスループットではなく、ハードドライブのナビゲーション時間です。
ハードウェアが不利に動作するという事実に加えて、カーネルも同様です。ベンチマークできる場合(アプリケーションアプリケーションで得られるものとはまったく異なりますが)、いくつかの改善が見られると思います。 )リアルタイムIOスケジューリングクラスで実行されます。デフォルトでは、アプリケーションは最良のカテゴリに予約されているため、書き込み待ち時間が長くなる可能性があります。ディスクにアクセスすると他のアプリケーションのパフォーマンスに悪影響を及ぼす可能性があるため、リアルタイム予約クラスを使用する責任はユーザーにあります。
全体的に、私はあなたが見ている同期書き込みパフォーマンスに深刻な問題がないと思います。同期IOは、非同期IOに比べてパフォーマンスが非常に低下することがよくあります。
参考までに、activemqとsyncioのクイックGoogleは次のものを提供しています。次のような:
パフォーマンス上の理由で永続メッセージを使用している場合でも、できるだけ早くブローカーにメッセージをストリーミングできます。