5.3.2 CTMのデーモンプロセスが使用するメモリの使用量の見積もり
CTMのデーモンプロセスの見積もり式を次に示します。
最大メモリ所要量 =A+{B+E+(2×D)}×C+F×G+(D−1)×16メガバイト
- (凡例)
-
A:基本メモリ量(128メガバイト)
B:CTMデーモンのキューに滞留する最大リクエスト数※1
C:最大リクエスト電文サイズ※2
D:-CTMClientConnectCount値※3
E:-CTMDispatchParallelCount値※4
F:CTMデーモンで必要とするスレッド数の最大値。見積もり式を示します。
F =(a×4+D×3+b×2+c×d+E+e+32) / 0.8
- (凡例)
-
a:-CTMMaxCTM値(ctmdが属するctmdmdで指定された値)※6
b:-CTMServerConnectCount値※7
c:-CTMQueueCount値※8
d:-CTMQueueRegistCount値※9
e:Createを発行するEJBクライアントの総数
G:スレッドスタックサイズ※5
- 注※1
-
最大リクエスト数はキュー長(キューが複数ある場合は,各キュー長の合計値)になります。
- 注※2
-
メモリサイズに余裕を持たせるため,キューに溜まるリクエストがすべて最大のサイズの場合を想定しますが,現実的な値としては,リクエスト電文サイズの平均値を指定することをお勧めします。
- 注※3
-
メモリサイズに余裕を持たせるため,CTMデーモンに接続できる最大数の場合を想定しますが,現実的な値としては,CTMデーモンに接続するCTMレギュレータとOTMゲートウェイの数を指定することをお勧めします。
- 注※4
-
メモリサイズに余裕を持たせるため,CTMデーモンに登録できる最大の同時実行数の場合を想定しますが,現実的な値としては,属性ファイルの<parallel-count>タグの値(キューが複数ある場合は,各キューの同時実行数の合計値)になります。
- 注※5
-
OSごとに使用する値が異なります。スレッドスタックサイズのOSごとのデフォルト値について,次に示します。
なお,スレッドスタックサイズについては,使用しているOSのマニュアルを参照してください。
Windows:1メガバイト
AIX:0.1メガバイト(96キロバイト)
Linux:10メガバイト
- 注※6
-
メモリサイズに余裕を持たせるため,CTMデーモンが最大数の場合を想定しますが,現実的な値としては,CTMドメイン内で管理するCTMデーモンの総数-1を指定することをお勧めします。
- 注※7
-
メモリサイズに余裕を持たせるため,CTMデーモンに接続できる最大数の場合を想定しますが,現実的な値としては,CTMデーモンに接続するJ2EEサーバの数を指定することをお勧めします。
- 注※8
-
メモリサイズに余裕を持たせるため,CTMデーモンに登録できる最大数の場合を想定しますが,現実的な値としては,CTMデーモンに登録するスケジュールキュー数を指定することをお勧めします。
- 注※9
-
メモリサイズに余裕を持たせるため,同じスケジュールキューを共有できる最大数の場合を想定しますが,現実的な値としては,同じスケジュールキューを共有するJ2EEアプリケーション数を指定することをお勧めします。
- ポイント
-
CTMデーモンがリクエストを送受信する際,一時的に最大で業務電文サイズの3〜5倍程度のメモリを使用することがあります。ここで示した見積もり式では,この増分は基本サイズの128メガバイトに余裕値として含まれています。
しかし,業務電文サイズが10メガバイトや20メガバイトといった,非常に長大電文で,かつ同時実行数(パラレルカウントの合計値)が大きい場合,処理が重なりこの余裕値を超えてしまうことがあります。このような場合に,正確に最大メモリ使用量を見積もろうとすると,現実的な値ではなくなるため,概算値はここで示した見積もり式で算出した上で,実際に業務を動作させてメモリ使用量の推移を計測することをお勧めします。