13.3. メッセージジャーナルの設定
メッセージジャーナルは、
JBOSS_DIST/jboss-as/server/PROFILE/deploy/hornetq/hornetq-configuration.xml
の以下の属性を使用して設定されます。
journal-directory
- メッセージジャーナルの場所。デフォルト値は
data/journal
です。パフォーマンスを最大にするために、このジャーナルを独自の物理ボリュームに置いて、ディスクヘッドの移動を最小化する必要があります。このジャーナルがストレージエリアネットワークに保存された場合は、ネットワークの各ジャーナルインスタンスが独自の論理単位を持つ必要があります。 create-journal-dir
true
の場合は、ジャーナルディレクトリが、journal-directory
で指定された場所で作成されます。デフォルト値はtrue
です。journal-type
- 有効な値は
NIO
またはASYNCIO
です。NIO
の場合は、Java NIO ジャーナルが使用されます。ASYNCIO
の場合は、Linux 非同期 IO が使用されます。ASYNCIO
が非 Linux または非 libaio システムで設定されている場合は、HornetQ がこれを検出し、NIO
を使用します。 journal-sync-transactional
true
の場合、HornetQ では、すべてのトランザクションデータがトランザクション境界 (コミット、準備、およびロールバック) でディスクにフラッシュされます。デフォルト値はtrue
です。journal-sync-non-transactional
true
の場合、HornetQ では、非トランザクションメッセージデータ (送信および承認) がディスクにフラッシュされます。デフォルト値はtrue
です。journal-file-size
- 各ジャーナルファイルのサイズ (バイト単位)。デフォルト値は
10485760
バイト (10 メガバイト) です。 journal-min-files
- ジャーナルが保持するファイルの最小数。HornetQ が起動され、初期データがない場合、HornetQ はこの数のファイルを事前に作成します。ジャーナルファイルの作成とパディングはコストがかかる操作であるため、実行時に回避されます (ファイルが満たされます)。ファイルを事前に作成する場合、ファイルが満たされると、ジャーナルがすぐに次のファイルで続行されます (ファイルを作成するために一時停止しません)。
journal-max-io
- IO キューに保持する書き込み要求の最大数。書き込み要求は、実行のためにシステムに送信される前にここでキューに格納されます。キューがいっぱいになると、キューでスペースが利用可能になるまで書き込みがブロックされます。NIO の場合、これは
1
である必要があります。AIO の場合、これは500
である必要があります。NIO が使用されているか、AIO が使用されているかに応じて異なるデフォルト値が保持されます (NIO の場合は1
、AIO の場合は500
)。AIO の最大値はオペレーティングシステムレベル (/proc/sys/fs/aio-max-nr
) で設定された値 (通常は 65536) よりも大きくしてはいけません。 journal-buffer-timeout
- HornetQ はフラッシュ要求のバッファーを保持し、バッファーがいっぱいになったとき、またはこのタイムアウトが経過したとき (どちらか早い方) にバッファー全体をフラッシュします。これは、NIO と AIO の両方に使用され、多くの同時書き込みとフラッシュが必要な場合にスケーリングが向上します。
journal-buffer-size
- AIO でタイムアウトになったバッファーのサイズ。デフォルト値は
490
キロバイトです。 journal-compact-min-files
- ジャーナルが圧縮される前のファイルの最小数。デフォルト値は
10
です。 journal-compact-percentage
- ジャーナルのこの割合以下がライブデータと見なされた場合は、圧縮が行われます。デフォルト値は
30
です。また、圧縮前にjournal-compact-min-files
を満たす必要があります。
警告
ほとんどのディスクには、ハードウェア書き込みキャッシュが含まれます。これにより、書き込みがキャッシュされ、後でレイジー状態でディスクに書き込まれるため、ディスクのパフォーマンスが向上します。
多くのシステムでは、ディスク書き込みキャッシュがデフォルトで有効です。したがって、オペレーティングシステムから同期した後であっても、データがディスクに書き込まれる保証はありません。障害が発生した場合は、重要なデータが失われることがあります。
一部のシステムは、非揮発性、またはバッテリー駆動の書き込みキャッシュを持ちます。これらを使用した場合は、障害発生時にデータが必ずしも失われるわけではありませんが、テストが重要になります。
ディスクがこれらのバックアップを備えておらず、冗長アレイ (RAID など) の一部でない場合は、ディスク書き込みキャッシュが
disabled
になっていることを確認してください。これにより、パフォーマンスが低下することがありますが、データの整合性は保持されます。
Linux の場合は、IDE ディスク用の hdparm ツール、sdparm、あるいは SCSI または SATA ディスク用の sginfo ツールでディスクの書き込みキャッシュ設定を検査または変更します。
Windows の場合は、ディスクを右クリックし、[プロパティ] を選択して設定を確認または変更します。