GlassFishのスレッド数を見積り式により算出し、システムの以下のパラメタ値に加算してください。
パラメタ | 意味 |
---|---|
[リソース制限(/etc/security/limits.conf)] | 1ユーザーが実行できるプロセス(スレッド)の最大数 |
[リソース制限(unit)] LimitNPROC | 1ユーザーが実行できるプロセス(スレッド)の最大数 |
以下の見積り式でGlassFishのスレッド数を算出してください。
PCMIサービスで使用するスレッド数 + GlassFish Serverインスタンス1個当たりのスレッド数 × (GlassFish Serverインスタンス数 + 1)(注)
+ バッチジョブで使用するスレッド数
注)
GlassFish Serverインスタンス数を1つ追加するのはDASのプロセスを考慮しているためです。
システムのリソースを制限するには、/etc/security/limits.confファイルを編集し、必要なパラメタ値を変更します。変更後は、変更した値を反映するためにシステムをリブートしてください。変更方法の詳細については、OSのドキュメントを参照してください。
ただし、Linux環境でPCMIサービスを自動起動する場合、unitファイル(FJSVpcmiglassfish5_start.service)の設定を拡張するための設定ファイルを作成し、[Service]セクションに本パラメタの値を設定してください。
unitファイルの設定の拡張方法については、「チューニングガイド」の「Red Hat Enterprise Linuxのunitファイルでの環境定義」を参照してください。
以下の見積り式でPCMIサービスが使用するスレッド数を算出してください。
8 × (PCMIサービスが管理するプロセス数) + 18
PCMIサービスが管理するプロセス数は以下の見積り式で算出してください。
(GlassFish Serverインスタンス数) + 1(注)
注)
GlassFish Serverインスタンス数を1つ追加するのはDASのプロセスを考慮しているためです。
以下の見積り式でGlassFish Serverインスタンス1個当たりのスレッド数を算出してください。
3 × (HTTPリスナー/HTTPSリスナー用スレッドプールの最大プールサイズ(注1) + 配備しているWebアプリケーションの数 + EJBコンテナのデフォルトスレッドプールの最大プールサイズ(注1) + Enterprise Beanごとに作成したスレッドプールの最大プールサイズの合計(注1) + Session Beanの非同期処理スレッドの最大プールサイズの合計 + GlassFish Serverインスタンスで使用するJDBC接続プールの最大プールサイズの合計数 + GlassFish Serverインスタンスで使用するコネクタ接続プールの最大プールサイズの合計数 + 3 × (JMS接続ファクトリの最大プールサイズの合計 + Message-driven Beanの数) (注2)
+ GlassFish Serverインスタンスで使用する管理実行サービスの最大プールサイズの合計数 + GlassFish Serverインスタンスで使用する管理スケジュール実行サービスのコアプールサイズの合計数
+ GlassFish Serverインスタンスで使用する管理スレッドファクトリが作成するスレッド数の最大数 + 2 × プロセッサ数 + 250
注1)
スレッドプールの定義項目名の${thread-pool-name}に指定する値は「9.8.16 スレッドプールの定義項目」の「■スレッドプール」を参照して指定してください。
注2)
JMSを使用しない場合は、加算する必要はありません。
バッチジョブで使用するスレッド数は以下の2つのうち、いずれか小さい値です。
バッチジョブのランタイムに指定する管理実行サービスの最大プールサイズ
または
同時実行されるバッチジョブ数、スプリット中のフロー数、およびパーティション化スレッド数の合計値