3.10 リソースの見積もりについて
リソースは、共用メモリーサイズ、プロセス数、スレッド数、ファイルディスクリプター数、およびデータベース容量を見積もったあと、それらを集計して全体のリソースを見積もります。
共用メモリーサイズの見積もり
Webサーバ、およびパフォーマンストレーサーが使用する共用メモリーサイズの見積もりを次に示します。
- Webサーバが使用する共用メモリーサイズ
-
Web サーバが使用する共用メモリーサイズは、次の計算式で算出します。
なお、Web サーバが使用する共用メモリーサイズは共用メモリーセグメントのサイズです。
Webサーバが使用する共用メモリーサイズ=409,600+7,168×MaxRequestWorkers
- (凡例)
-
MaxRequestWorkers:同時に接続できるクライアントの最大数(バイト)
- パフォーマンストレーサーが使用する共用メモリーサイズ
-
パフォーマンストレーサーが使用する共用メモリーサイズは、次の計算式で算出します。
なお、パフォーマンストレーサーが使用する共用メモリーサイズは共用メモリーセグメントのサイズです。
パフォーマンストレーサーが使用する共用メモリーサイズ=PrfTraceBufferSize指定値×1,024+18,496
- (凡例)
-
PrfTraceBufferSize指定値:共用メモリーに確保するパフォーマンストレーサーのトレースバッファーサイズ(バイト)
プロセス数の見積もり
Java EE Server、Webサーバ、およびパフォーマンストレーサーのプロセス数の見積もりを次に示します。
- Java EE Serverのプロセス数
-
Java EE Serverの常駐プロセス数は、次の計算式で算出します。
Java EE Serverの常駐プロセス数=ドメイン管理サーバ数+サーバインスタンス数
- Webサーバのプロセス数
-
Web サーバのプロセス数は、次の計算式で算出します。
Webサーバのプロセス数=制御プロセス+サーバプロセス+CGIプロセス+gcacheサーバ +rotatelogsプロセス+rotatelogs2プロセス
- (凡例)
-
制御プロセス:1
サーバプロセス:MaxRequestWorkersディレクティブ指定数
CGIプロセス:サーバプロセス数分
gcacheサーバ:1
rotatelogsプロセス:CustomLogディレクティブ、ErrorLogディレクティブ、HWSRequestLogディレクティブ、TransferLogディレクティブに指定したrotatelogsプログラム数
rotatelogs2プロセス:CustomLogディレクティブ、ErrorLogディレクティブ、HWSRequestLogディレクティブ、TransferLogディレクティブに指定したrotatelogs2プログラム数
- パフォーマンストレーサーのプロセス数
-
パフォーマンストレーサーの常駐プロセス数は1です。
スレッド数の見積もり
Java EE Server、Webサーバ、およびパフォーマンストレーサーのスレッド数の見積もりを次に示します。
- Java EE Serverのスレッド数
-
Java EE Serverが使用するスレッド数は、次の計算式で算出します。
- (凡例)
-
Dt:ドメイン管理サーバの1プロセス当たりのスレッド総数
SIt: サーバインスタンスの1プロセス当たりのスレッド総数
m:ドメイン管理サーバのプロセス数
n:サーバインスタンスのプロセス数
ドメイン管理サーバの1プロセス当たりのスレッド総数Dtと、サーバインスタンスの1プロセス当たりのスレッド総数SItを求める計算式を次に示します。
- (凡例)
-
Tm:スレッドプールの最大値
Cm:JDBCコネクションプールのコネクション最大値(コネクション障害検知機能が有効な場合だけ。コネクション障害検知機能が無効な場合は0。)
Tn:スレッドプールに属さないスレッド数。ドメイン管理サーバやサーバインスタンスがデフォルトで生成するスレッド数は44です。
m:ドメイン管理サーバのスレッドプール数
n:サーバインスタンスのスレッドプール数
r:サーバインスタンスのJDBCコネクションプール数
mとnのスレッドプール数は、list-threadpoolsコマンドを実行して表示されるスレッドプールの一覧で確認してください。
- Webサーバのスレッド数
-
Webサーバが使用するスレッド数は、Webサーバが使用するプロセス数と同じです。
- パフォーマンストレーサーのスレッド数
-
パフォーマンストレーサーが使用するスレッド数は10です。
ファイルディスクリプター数の見積もり
Java EEサーバ、Webサーバ、およびパフォーマンストレーサーのファイルディスクリプター数の見積もりを次に示します。
- Java EEサーバのファイルディスクリプター数
-
Java EEサーバのファイルディスクリプター数は、OSのopen()、socket()などのシステムコールの発行に従って増減します。また、ファイルディスクリプター数は、DBMSの同時接続数によっても異なります。
ここでは、DBMSの最大同時接続数を基に、Java EEサーバが使用するファイルディスクリプター数の見積もりを示します。
Java EEサーバが使用するファイルディスクリプター数は、次の計算式で算出します。
Java EEサーバのファイルディスクリプター数=JDBコネクションプールサイズ×2
- Webサーバのファイルディスクリプター数
-
Webサーバが使用するファイルディスクリプター数は、次の計算式で算出します。
-
Linuxの場合
Webサーバが使用するファイルディスクリプター数=(50+A×B+C+11×C×D+8×E+(F+H)×G)×1.2
-
AIXの場合
Webサーバが使用するファイルディスクリプター数=(50+A×B+C+3×C×D+5×E+(F+H)×G)×1.2
(凡例)
A:Listenディレクティブ指定数(Listenディレクティブの指定がない場合は1)
B:ホストに割り当てられたIPアドレスの数
C:CustomLogディレクティブ、ErrorLogディレクティブ、HWSRequestLogディレクティブ、TransferLogディレクティブ指定の総数
D:rotatelogsプログラムまたはrotatelogs2プログラムを使用する場合は1、使用しない場合は0
E:同時実行CGI数(MaxRequestWorkers指定値。CGIプログラムを使用しない場合は0)
F:SSLを使用する場合は3、使用しない場合は2
G:同時実行リクエスト数(MaxRequestWorkers指定値)
H:リバースプロキシーを使用する場合は1、使用しない場合は0
なお、CGIプログラム内およびWebサーバに同梱されていない外部モジュール内で使用するファイルディスクリプターの数は含みません。
-
- パフォーマンストレーサーのファイルディスクリプター数
-
パフォーマンストレーサー起動時に使用するファイルディスクリプターの数は、32以上に設定してください。
データベース容量の見積もり
Application Serverの機能としてEJBタイマーサービスとJava Batchを使用する場合、DBMSを必要とします。DBMSにはテーブル情報が定義されているDDLファイルが格納されています。このDDLファイルのテーブル情報および実測したレコード数を基に、データベース容量の見積もりをしてください。
見積もりに必要なDDLファイルの格納場所を次に示します。
項番 |
対象 |
格納先ディレクトリー |
ファイル名 |
DBMS |
---|---|---|---|---|
1 |
EJBタイマーサービス |
Application Serverのインストールディレクトリー/javaee/glassfish/lib/install/databases |
ejbtimer_hirdb.sql |
HiRDB |
2 |
ejbtimer_oracle.sql |
Oracle |
||
3 |
Java Batch |
jsr352-hirdb.sql |
HiRDB |