11.1.6 調整可能なメッセージ・パラメータ
適切にチューニングされているシステムでは、キューがいっぱいになることはほとんどありません。メッセージ・フローの変化に対応できるだけの十分な余裕をキューに残す必要があります。お薦めできるこれといった設定はありません。調整はアプリケーションによって大きく異なります。UNIXシステムのipcs(1)コマンドを使用してキューのスナップショットを取ると、キューがいっぱいかどうかを確認できます。リクエストの送信時に、TPNOBLOCKフラグを設定することも1つの方法です。これを行うと、クライアントはいつキューがいっぱいになるかがわかり、若干ペースを落とすことができます。リクエスト・キューがいっぱいになっているサーバーのスケジューリングの優先度を上げることも有効な方法です。
以下のメッセージ・パラメータを調整してください。
-
MSGMNI - 一意のメッセージ・キュー識別子の数。マシン上のOracle Tuxedoアプリケーションに参加している各プロセスには、通常、少なくとも1つのメッセージ・キューが必要です。MSSQセットを使用する場合はこの数は小さくなります - つまり、複数のサーバー・プロセスが1つのキューを共有します。トランザクション処理では、トランザクション・マネージャ・サーバー(TMS)プロセスのサーバー・グループごとに1つのキューを割り当てます。したがって、
MSGMNIの最低限の必要値は、次の計算式から求められます。 -
MSGMAX - バイト単位での最大メッセージ・サイズ。
MSGMAXには、マシン上で実行しているOracle Tuxedoアプリケーションを処理できるだけのサイズが必要です。 -
MSGMNB - バイト単位でのメッセージ・キューの最大長。キューに格納されているすべてのメッセージの合計バイト数より大きくなければなりません。
MSGMNBの最小値はMSGMAXの値です。MSGMNBの75%より長いメッセージは、メッセージ・キューではなくファイルに格納されます。その場合、パフォーマンスが著しく低下するので、このような状態は避けるようにします。 -
MSGMAP - メッセージ・セグメントを管理するために使用される制御マップ内のエントリ数。
MSGMAPの値は、メッセージ・セグメントの数(MSGSEGで指定された値)と同じでなければなりません。 - MSGSSZ
- バイト単位でのメッセージ・セグメントのサイズ。メッセージは複数のセグメントで構成されます。
MSGSSZの値は、通常送信されるメッセージのサイズ(Oracle Tuxedoシステム・ヘッダーも含む)とMSGSSZの倍数が等しくなるように設定します。このようにメッセージをいくつかのセグメントに分割すると、領域が無駄になりません。 -
MSGSEG - システム内のメッセージ・セグメントの数。
-
MSGTQL - カーネルに格納できる未処理のメッセージの総数。これは任意の時点での未読メッセージの最大数です。
親トピック: IPCリソースを制御するパラメータ・セット