Cosminexus 機能解説

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

付録C.9 Webコンテナによるスレッドの作成

Webコンテナでは,Webサーバ連携のためのスレッド,Webアプリケーションのためのスレッドなどを作成します。これらのスレッドに対して,システムのリソースが十分であるか検討します。

ここでは,サーブレットエンジンモードの場合の,Webコンテナが作成するスレッドについて説明します。

<この項の構成>
(1) 作成されるスレッドの種類と数
(2) 作成されるスレッドの総数

(1) 作成されるスレッドの種類と数

Webコンテナが作成するスレッドを次に示します。

(a) Webサーバ連携のためのスレッド
●Webコンテナの簡易Webサーバを使用する場合(任意)

作成するスレッド
TCPのコネクション接続要求を受信するスレッド,および受信したリクエスト処理用スレッドを作成します。

スレッドの数
TCPのコネクション接続要求を受信するスレッドは,1スレッドです。簡易Webサーバが受信したリクエスト処理用スレッドは,最小5スレッド,最大100スレッドです。
リクエスト処理用スレッドは,起動時に5スレッド作成し,同時実行スレッド数が起動済みスレッド数を超えた場合,100スレッドまで作成されます。

なお,サーブレットエンジンモードの場合,Webコンテナの簡易Webサーバの使用は任意となります。

●Webサーバ連携機能を使用する場合

作成するスレッド
リダイレクタからのコネクション接続要求を受信するスレッド,およびリダイレクタから受信したリクエスト処理用スレッドを作成します。

スレッドの数
リダイレクタからのコネクション接続要求を受信するスレッドは,1スレッドです。リダイレクタから受信したリクエスト処理用スレッドは,WebサーバとWebコンテナとのコネクション数分スレッドを作成します。
リダイレクタから受信したリクエスト処理用スレッドは,起動時にwebserver.connector.ajp13.max_threadsに指定された数分作成します(webserver.connector.ajp13.max_threadsのデフォルトは10)。
(b) Webアプリケーションのためのスレッド

Webアプリケーション単位に次のスレッドを作成します。最小1スレッド,最大3スレッドです。

(c) メインスレッド

なお,サーブレットエンジンモードの場合,メインスレッドとして1スレッド作成します。

(2) 作成されるスレッドの総数

Webコンテナがデフォルトの設定でプロセス起動時に作成するスレッドの総数を次に示します。ただし,この数値にはWebコンテナ以外,およびJavaVMが作成するスレッドは含まれていません。

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

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

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

このため,プロセス起動時のスレッド総数は次のようになります。

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

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

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