第19章 チューニングガイドライン
AMQ Broker を調整するには、次のガイドラインを確認してください。
19.1. 永続性の調整
永続性パフォーマンスを向上させるヒントは、次の情報を確認してください。
メッセージをファイルベースのジャーナルに保存します。
メッセージの永続性にはファイルベースのジャーナルを使用します。AMQ Broker はメッセージを Java Database Connectivity (JDBC) データベースに保存することもできますが、ファイルベースのジャーナルを使用する場合と比較するとパフォーマンスコストがかかります。
メッセージジャーナルを独自の物理ボリュームに配置します。
追加のみのジャーナルの利点の 1 つは、ディスクヘッド移動が最小限に抑えられることです。ディスクが共有されている場合は、この利点は失われます。トランザクションコーディネーター、データベース、その他のジャーナルなど、複数のプロセスが同じディスクから読み書きされる場合、ディスクヘッドが異なるファイル間でスキップする必要があるため、パフォーマンスに影響を及ぼします。ページングまたは大きいメッセージを使用している場合は、それらが別のボリュームに配置されていることを確認します。
journal-min-files
パラメーター値を調整します。journal-min-files
パラメーターを、平均的に持続可能な割合に一致するファイル数に設定します。ジャーナルデータディレクトリーに新しいファイルが頻繁に作成される、つまり大量のデータが保持される場合は、ジャーナルが保持するファイルの最小数を増やす必要があります。これにより、新規データファイルを作成せず、ジャーナルを再利用できます。ジャーナルファイルサイズを最適化します。
journal-file-size
パラメーターの値をディスク上のシリンダーの容量に合わせます。ほとんどのシステムでは、デフォルト値の 10 MB で十分です。非同期 IO (AIO) ジャーナルタイプを使用します。
Linux オペレーティングシステムの場合、ジャーナルタイプは AIO のままにします。AIO は Java の新規 I/O (NIO) よりもスケーラビリティーに優れています。
journal-buffer-timeout
パラメーター値を調整します。journal-buffer-timeout
パラメーターの値を増やすと、レイテンシーは増加しますが、スループットは向上します。journal-max-io
パラメーター値を調整します。AIO を使用していると、
journal-max-io
パラメーター値を増やして、パフォーマンスを向上させることができることがあります。NIO を使用している場合は、この値を変更しないでください。journal-pool-files
パラメーターを調整します。ジャーナルファイルプールの上限しきい値である
journal-pool-files
パラメーターを、予想される最大負荷に近い数値に設定します。必要に応じて、ジャーナルは上限しきい値を超えて拡張されますが、可能な場合はしきい値まで縮小されます。これにより、必要以上のディスク領域を消費することなく、ファイルを再利用できるようになります。ジャーナルデータディレクトリーに新しいファイルが頻繁に作成される場合は、journal-pool-size
パラメーターを増やします。このパラメーターを増やすと、ジャーナルは新しいファイルを作成する代わりに既存のファイルを再利用できるようになり、パフォーマンスが向上します。ジャーナル書き込みの耐久性保証が必要ない場合は、
journal-data-sync
パラメーターを無効にします。停電が発生した場合にジャーナル書き込みの耐久性を保証する必要がない場合は、
journal-data-sync
パラメーターを無効にし、ジャーナルタイプとしてNIO
またはMAPPED
を使用してパフォーマンスを向上させます。