第43章 パフォーマンスチューニング
本章では、パフォーマンスを最適化するために HornetQ をチューニングする方法について説明します。
43.1. 永続化のチューニング
- メッセージジャーナルを独自の物理ボリュームに置きます。たとえば、ディスクがトランザクションコーディネーター、データベース、またはディスクに対して読み書きを行う他のジャーナルと共有された場合は、これらにより、パフォーマンスが大幅に低下します。これは、ディスクヘッドが異なるファイル間でスキップすることがあるためです。1 つのジャーナルだけを追加する 1 つの利点は、ディスクヘッドの移動が最小化されることです (ディスクが共有される場合、この利点は失われます)。ページングまたは大きいメッセージを使用する場合は、これらが別のボリュームに配置されるようにします。
- ジャーナルファイルの最小数。
journal-min-files
を、平均持続レートを満たすファイルの数に設定します。たとえば、ジャーナルデータディレクトリで新しいファイルが頻繁に作成され、たくさんのデータが永続化される場合は、ファイルの最小数を増やします。これにより、ジャーナルは新しいデータファイルを作成する代わりにより多くのファイルを再使用します。 - ジャーナルファイルサイズ。ジャーナルファイルサイズは、ディスクのシリンダーの容量に調整する必要があります。ほとんどのシステムでは、デフォルト値 10MiB で十分なはずです。
- AIO ジャーナルを使用します。Linux を使用している場合は、ジャーナルタイプを AIO に保ってください。AIO は Java NIO よりスケーリングが優れています。
journal-buffer-timeout
をチューニングします。レイテンシーを犠牲にする代わりにスループットを向上させたい場合は、タイムアウトを増加します。- AIO を実行している場合は、
journal-max-io
を増加させることによりパフォーマンスを向上させることができます。NIO を実行している場合は、このパラメーターを変更しないでください。