Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)

[目次][用語][索引][前へ][次へ]

2.13.2 作成するスレッドの総数

Webコンテナがデフォルトの設定でプロセス起動時に作成するスレッドの総数を,Webサーバと連携する場合と,インプロセスHTTPサーバを使用する場合に分けて示します。ただし,この数値にはWebコンテナ以外のスレッド,およびJavaVMが作成するスレッドは含まれていません。

<この項の構成>
(1) Webサーバと連携する場合
(2) インプロセスHTTPサーバを使用する場合

(1) Webサーバと連携する場合

Webサーバと連携する場合の作成するスレッドの総数について説明します。また,Webサーバ連携に使用するスレッド数についても説明します。

(a) 作成するスレッドの総数

作成するスレッドの総数は,レスポンス送信時のタイムアウトを設定しているかどうかによって異なります。

レスポンス送信時のタイムアウトを設定しているとき
スレッド総数=A+B+C+D+E

レスポンス送信時のタイムアウトを設定していないとき
スレッド総数=A+B+C+D
(凡例)
A:Webコンテナの簡易Webサーバ用のスレッド数
B:Webサーバとの連携に使用するスレッド数
C:Webアプリケーション単位のスレッド数
D:管理用コンテキストのスレッド数
E:レスポンス送信時のタイムアウトを監視するためのスレッド数

このため,Webサーバ連携の場合のプロセス起動時のスレッド総数は次のようになります。

レスポンス送信時のタイムアウトを設定しているときのスレッド総数
=6+11+(1×Webアプリケーション数)+2+1
=20+Webアプリケーション数

レスポンス送信時のタイムアウトを設定していないときのスレッド総数
=6+11+(1×Webアプリケーション数)+2
=19+Webアプリケーション数

プロセス起動後,Webサーバとのコネクション数,簡易Webサーバの同時実行数によってスレッド数が増加します。

(b) Webサーバとの連携に使用するスレッド数

Webサーバ連携機能を使用する場合のリクエスト処理スレッドは,Webコンテナ起動時にusrconf.propertiesのwebserver.connector.ajp13.max_threadsキーに指定した数分作成し,以降はリダイレクタからのコネクション数分作成します。そのため,リクエスト処理スレッド数の最大数はWebサーバの最大接続数に依存します。

なお,リダイレクタ−Webコンテナ間のコネクションがタイムアウトによって切断された場合は,Webサーバの最大接続数以上にリクエスト処理スレッドが作成されます。リクエスト処理用スレッド数の最大値を算出する式を次に示します。

(2) インプロセスHTTPサーバを使用する場合

作成するスレッドの総数は,レスポンス送信時のタイムアウトを設定しているかどうかによって異なります。

レスポンス送信時のタイムアウトを設定しているとき
スレッド総数=A+B+C+D+E

レスポンス送信時のタイムアウトを設定していないとき
スレッド総数=A+B+C+D
(凡例)
A:Webコンテナの簡易Webサーバを使用する場合のスレッド数
B:インプロセスHTTPサーバを使用する場合のスレッド数
C:Webアプリケーション単位のスレッド数
D:管理用コンテキストのスレッド数
E:レスポンス送信時のタイムアウトを監視するためのスレッド数

このため,インプロセスHTTPサーバを使用する場合のプロセス起動時のスレッド総数は次のようになります。

レスポンス送信時のタイムアウトを設定しているときのスレッド総数
=6+11+(1×Webアプリケーション数)+2+1
=20+Webアプリケーション数

レスポンス送信時のタイムアウトを設定していないときのスレッド総数
=6+11+(1×Webアプリケーション数)+2
=19+Webアプリケーション数

J2EEサーバ起動後,Webクライアントとのコネクション数,簡易Webサーバの同時実行数によってスレッド数が増加します。