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サーバの最大接続数以上にリクエスト処理スレッドが作成されます。リクエスト処理用スレッド数の最大値を算出する式を次に示します。
- Hitachi Web Serverを使用している場合
リクエスト処理スレッド数の最大値=A+B
- (凡例)
- A:日立WebサーバのThreadsPerChildディレクティブの設定値
- B:リダイレクタ−Webコンテナ間のコネクションがタイムアウトによって切断されたときの,実行中のリクエスト数(最大値はwebserver.connector.ajp13.max_threadsの設定値)
- Microsoft IISを使用している場合
リクエスト処理スレッド数の最大値=A×B+C
- (凡例)
- A:Microsoft IISのスレッド数
- B:Microsoft IISのプロセス数
- C:リダイレクタ−Webコンテナ間のコネクションがタイムアウトによって切断されたときの,実行中のリクエスト数(最大値はwebserver.connector.ajp13.max_threadsの設定値)
作成するスレッドの総数は,レスポンス送信時のタイムアウトを設定しているかどうかによって異なります。
- レスポンス送信時のタイムアウトを設定しているとき
- スレッド総数=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サーバの同時実行数によってスレッド数が増加します。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.