2.15.6 同時実行スレッド数および実行待ちキューサイズの設定例(Webアプリケーション単位)
同時実行スレッド数およびWebアプリケーション単位の実行待ちキューサイズの設定例について説明します。ここでは,Webサーバ連携機能を使用する場合の例について説明します。
(1) 説明で使用するWebアプリケーションの設定例
この例では,Webコンテナに四つのWebアプリケーションがデプロイされていて,そのうちの二つのWebアプリケーションにWebアプリケーション単位での同時実行スレッド数制御がされているものとします。設定内容を次に示します。
-
Webサーバの最大同時接続数:50
-
Webコンテナ単位の最大同時実行スレッド数:10
-
デフォルトの実行待ちキューサイズ:10
-
Webアプリケーション単位の同時実行スレッド数制御の設定
WebアプリケーションAおよびBに,それぞれ次の設定がされているものとします。
なお,WebアプリケーションCおよびDには,Webアプリケーション単位の同時実行スレッド数制御の設定はありません。
Webアプリケーション名
最大同時実行スレッド数
占有スレッド数
Webアプリケーション単位の実行待ちキューサイズ
WebアプリケーションA
3
1
5
WebアプリケーションB
3
2
10
Webコンテナ上に,Webアプリケーションごとの同時実行スレッド数制御の設定があるWebアプリケーションと,設定のないWebアプリケーションが混在している場合の例を,次の図に示します。
(2) 各Webアプリケーションで使用できるスレッド数
図2-21の設定の場合に使用できる最大同時実行スレッド数,占有スレッド数,および実行待ちキューサイズについて,Webアプリケーションごとに説明します。なお,説明の項番は,図中の項番と対応しています。
-
WebアプリケーションA
-
最大同時実行スレッド数および占有スレッド数
WebアプリケーションAでは,最大同時実行スレッド数および占有スレッド数が設定されているので,それぞれ設定された値までスレッド数を使用できます。
WebアプリケーションAの同時に実行できるスレッド数は最大で3スレッドです。そのうち,1スレッドは,WebアプリケーションAで最低限確保できる占有スレッド数となります。
-
Webアプリケーション単位の実行待ちキューサイズ
WebアプリケーションAではWebアプリケーション単位の実行待ちキューサイズを指定しています。WebアプリケーションAで同時に3スレッド使用している場合,WebアプリケーションAへのリクエストは,最大で5個,キューにたまります。
-
-
WebアプリケーションB
-
最大同時実行スレッド数および占有スレッド数
WebアプリケーションBでは,最大同時実行スレッド数および占有スレッド数が設定されているので,それぞれ設定された値までスレッド数を使用できます。
WebアプリケーションBの同時に実行できるスレッド数は最大で3スレッドです。そのうち,2スレッドは,WebアプリケーションBで最低限確保できる占有スレッド数となります。
-
Webアプリケーション単位の実行待ちキューサイズ
WebアプリケーションBではWebアプリケーション単位の実行待ちキューサイズを指定しています。WebアプリケーションBで同時に3スレッド使用している場合,WebアプリケーションBへのリクエストは,最大で10個,キューにたまります。
-
-
WebアプリケーションCおよびWebアプリケーションD
WebアプリケーションCおよびWebアプリケーションDでは,Webアプリケーション単位の同時実行スレッド制御を設定していません。
このため,次のように動作します。
-
最大同時実行スレッド数
WebアプリケーションCおよびWebアプリケーションDでは,Webコンテナの共有スレッド数を使用します。この場合,Webコンテナの共有スレッド数は7であるため,WebアプリケーションCおよびWebアプリケーションDで,合わせて最大で7スレッド使用できます。
なお,スレッド数は,WebアプリケーションCおよびWebアプリケーションDで共有することになります。
また,同時実行スレッド数制御を設定していないため,占有スレッド数はありません。WebアプリケーションAおよびWebアプリケーションBへのアクセスが集中し,使用できるスレッドがなくなると,WebアプリケーションCおよびWebアプリケーションDの処理は実行待ちになります。
-
デフォルトの実行待ちキューサイズ
WebアプリケーションCまたはWebアプリケーションDで実行待ちが発生した場合,これらのWebアプリケーションへのリクエストは,キューにたまります。WebアプリケーションCおよびWebアプリケーションDではWebアプリケーション単位の実行待ちキューサイズを指定していないため,キューはデフォルトの実行待ちキューにためられます。最大で10個のリクエストがキューにたまります。
- 参考
-
Webコンテナでは,スレッドは静的コンテンツやリクエストのエラー処理にも使用されます。これらの目的で使用されるスレッド数は,次の式から求められます。
- Webサーバの処理スレッド数−(Webコンテナ単位の最大同時実行スレッド数+実行待ちキューサイズの総和※)
-
注※ 実行待ちキューサイズの総和とは,この図の場合,Webコンテナ,WebアプリケーションA,WebアプリケーションBの実行待ちキューサイズを足した値となります。
このため,この図の例の場合,50−(10+(10+5+10))となり,静的コンテンツやリクエストのエラー処理に使用されるスレッド数は,15スレッドとなります。
-