6.2.1 バッチサーバが使用するリソースの見積もり
ここでは,バッチサーバのスレッド数とファイルディスクリプタ数の見積もり方法について説明します。アプリケーションサーバを動作させるために必要なディスクおよびメモリの容量を算出するときの参考にしてください。
- 〈この項の構成〉
(1) スレッド数
スレッド数の計算式を次に示します。(a)と(b)の合計が,バッチサーバが使用するスレッド数です。
(a) 基本のスレッド数
最大スレッド数 = 68+A+B+C+D+E+F+G+H+I
(凡例)
-
A:CORBAネーミングサービスのスレッド数(=クライアントとCORBAネーミングサービス間のコネクション数×2+同時受け付けリクエスト数+初期化時に生成されるスレッド数(vbroker.agent.enableLocatorの値がtrueの場合は6,falseの場合は4)+1)
ただし,CORBAネーミングサービスをインプロセスで起動(usrconf.propertiesのejbserver.naming.startupModeキーにinprocessを指定)した場合だけ加算する。
CORBAネーミングサービスのスレッド数の見積もりについては,「5.2.1(3) CORBAネーミングサービス(インプロセス起動時)のスレッド数の見積もり」を参照してください。
-
B:同時に使用する最大のデータベースコネクション数
コネクションプーリング機能を使用している場合は,最大コネクションプール数(Connector属性ファイルで指定するMaxPoolSizeの値。複数のリソースアダプタがある場合は合計)となる。
コネクションプーリング機能を使用していない場合は,最大同時リクエスト数や1リクエストで使用するコネクション数から求める(1リクエストで1コネクションを使用する場合,最大同時リクエスト数となる)。
-
C:JTAトランザクションを使用する場合,最大同時実行トランザクション数(トランザクションタイムアウトが発生したトランザクション一つにつき,1スレッドを使用する。1リクエストが1トランザクションの場合,最大同時リクエスト数になる)
-
D:最大コネクションプール数(複数のリソースアダプタがある場合は合計※)×2
注※ Connector属性ファイルで指定するMaxPoolSizeの値
-
E:コネクションプーリング機能を使用しているリソースアダプタ数
-
F:グローバルトランザクションの決着処理,リカバリ処理で使用するスレッド数(グローバルトランザクションを使用している場合,16を加算する)
-
G:管理用サーバへの同時接続クライアント数(ただし,管理用サーバへの同時接続クライアント数が5以下の場合は5,100以上の場合は100を指定する)
-
H:リプライ受信専用スレッドを管理するスレッドを起動する設定(vbroker.ce.iiop.ccm.htc.threadStarter=true)の場合,5を加算する。
-
I:タイムアウト発生時のコネクションのクローズを抑止する設定(vbroker.ce.iiop.ccm.htc.readerPerConnection=true)の場合,次の値を加算する。
(リモート呼び出し先のEJBがあるJ2EEサーバの数+1)×2
CTMを使用している場合は,さらに次の値を加算する。
-
J2EEアプリケーション単位のスケジューリングをしている場合
開始しているJ2EEアプリケーション数+1
-
Stateless Session Bean単位のスケジューリングをしている場合
スケジューリング対象のStateless Session Beanの数+1
-
(b) JavaVMのオプション指定に応じて使用するスレッド数
JavaVMのオプション指定に応じて,次の計算式で算出してください。Aは,-XX:+UseG1GCオプションを指定している場合だけ加算します。Bは,-XX:+HitachiUseExplicitMemoryオプションを指定した場合だけ加算します。
最大スレッド数 = A + B
- (凡例)
-
-
A:G1GCで使用するスレッド数(-XX:ParallelGCThreadsオプションに指定した値。このオプションの指定を省略した場合は,論理CPU数を基にした-XX:ParallelGCThreadsオプションのデフォルト値。なお,J2EEサーバ起動時の論理CPU数によって決定されるため,起動後に論理CPUの数を変更してもスレッド数は変化しない)
-
B:明示管理ヒープ機能で使用するスレッド数(論理CPU数。ただし,論理プロセッサ数が8以上の場合は8。なお,J2EEサーバ起動時の論理CPU数によって決定されるため,起動後に論理CPUの数を変更してもスレッド数は変化しない)
-
JavaVMのオプションについては,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の次の個所を参照してください。
(2) ファイルディスクリプタ数
ファイルディスクリプタ数の計算式を次に示します。
最大ファイルディスクリプタ数 = (149+A+B×2+C) / 0.8
- (凡例)
-
-
A:データベースコネクションの数
-
B:リソースアダプタ数
-
C:usrconf.cfgのadd.class.pathキーに指定したJARファイルの数
-