Cosminexus 機能解説
Webアプリケーション単位の同時実行スレッド数の設定(最大同時実行スレッド数,占有スレッド数,および実行待ちキューサイズ)は動的に変更することもできます。これによって,稼働中のWebアプリケーションのサービスを停止することなく,同時実行スレッド数の設定を変更できます。
同時実行スレッド数の動的変更によって,次のようなことができます。
- Webアプリケーション単位の同時実行スレッド数に関する性能チューニング
- アクセス状況に応じた,同時実行スレッド数の設定の変更
- 時間帯に応じた,計画的な同時実行スレッド数の設定の変更
Webアプリケーションの同時実行スレッド数の動的変更については,マニュアル「Cosminexus システム運用ガイド」を参照してください。
- <この項の構成>
- (1) 設定変更の例
- (2) 設定変更後の動作
- (3) URLグループ単位の同時実行スレッド数制御への影響
- (4) 動的変更の注意
(1) 設定変更の例
ここでは,特定のWebアプリケーションに対して,スループットを向上し,エラーとなるリクエストを減らしたい場合の,設定変更例を紹介します。この例では,Webアプリケーションの,最大同時実行スレッド数,占有スレッド数,および実行待ちキューサイズを増やしています。なお,同時実行スレッド数の動的変更では,Webコンテナ単位の最大同時実行スレッド数およびURLグループ単位の最大同時実行スレッド数は変更できません。
表4-29 同時実行スレッド数の動的変更の例
パラメタ |
変更前の設定値 |
変更後の設定値 |
Webコンテナ単位の最大同時実行スレッド数 |
10 |
− |
Webアプリケーションの設定 |
最大同時実行スレッド数 |
7 |
8 |
占有スレッド数 |
4 |
5 |
実行待ちキューサイズ |
8 |
10 |
(凡例) −:設定を変更できない
(2) 設定変更後の動作
同時実行スレッド数の変更はすぐに反映されます。変更した直後に注意が必要な動作を次に示します。
- 最大同時実行スレッド数を変更した場合
- 最大同時実行スレッド数を増加させたとき
実行待ち状態のリクエストで,実行できる状態になったリクエストはすぐに実行されます。
- 最大同時実行スレッド数に指定しているスレッド数をすべて使用している状態で,最大同時実行スレッド数を減少させたとき
一時的に変更後の最大同時実行スレッド数を上回るリクエストが同時に実行されます。
- 占有スレッド数を変更した場合
- Webコンテナ単位の最大同時実行スレッド数に設定した数のスレッドをすべて使用している状態で,占有スレッド数を増加させたとき
占有スレッド数を増加させたWebアプリケーションに実行待ちのリクエストがあるときは,占有スレッド数分のリクエストはすぐ実行されます。ただし,このとき,一時的にWebコンテナ単位の最大同時実行スレッド数を超えたリクエストが同時に実行されます。
- 占有スレッド数を減少させたとき
占有スレッド数を減少させると,すべてのWebアプリケーション単位で共有するスレッド数が増加します。このときに,実行待ち状態で,すべてのWebアプリケーション単位で共有するスレッド数の増加によって実行できる状態になったリクエストがあれば,すぐに実行されます。
- 実行待ちキューサイズを変更した場合
- Webアプリケーション単位の実行待ちキューで,キューの上限までリクエストの待ちがある状態で,実行待ちキューサイズを減少したとき
実行待ちキューサイズを超えたリクエストはHTTP 503エラーが返ります。
(3) URLグループ単位の同時実行スレッド数制御への影響
URLグループ単位の同時実行スレッド数制御を設定しているWebアプリケーションの同時実行スレッド数を動的に変更した場合,URLグループ単位の同時実行スレッド数の設定に影響が出ることがあります。影響が出る変更を次に示します。
- Webアプリケーション単位の最大同時実行スレッド数を減らした場合
- Webアプリケーション単位の最大同時実行スレッド数の減少によって,次の条件を満たしたとき,URLグループ単位の最大同時実行スレッド数は,一時的にWebアプリケーション単位の同時実行スレッド数になります。
- URLグループ単位の最大同時実行スレッド数が変更される条件
- URLグループ単位の最大同時実行スレッド数>Webアプリケーション単位の最大同時実行スレッド数
- ただし,URLグループ単位の最大同時実行スレッド数の設定値が変更になるわけではありません。動的変更時に設定したスレッド数までWebアプリケーション単位の最大同時実行スレッド数が減少し,URLグループ単位の最大同時実行スレッド数がWebアプリケーション単位の最大同時実行スレッド数を下回ると,URLグループ単位の最大同時実行スレッド数は設定した値で動作します。
- なお,この変更によって,実行中のリクエスト処理を継続させるために,一時的に変更後のWebアプリケーション単位の最大同時実行スレッド数を上回るリクエストが同時に実行されることがあります。
- Webアプリケーション単位の占有スレッド数を減らした場合
- Webアプリケーション単位の占有スレッド数の減少によって,Webアプリケーション内のすべてのURLグループ単位に設定されている占有スレッド数が使用できなくなります。使用できなくなる条件を次に示します。なお,条件は,Webアプリケーション単位の最大同時実行スレッド数と占有スレッド数の関係によって異なります。
- Webアプリケーション単位の最大同時実行スレッド数=Webアプリケーション単位の占有スレッド数の場合
- 次に示す式を満たしたとき,URLグループ単位に設定されている占有スレッド数は使用できなくなります。
- Webアプリケーション単位の占有スレッド数≦URLグループ単位の占有スレッド数の総和
- Webアプリケーション単位の最大同時実行スレッド数≠Webアプリケーション単位の占有スレッド数の場合
- 次に示す式を満たしたとき,URLグループ単位に設定されている占有スレッド数は使用できなくなります。
- Webアプリケーション単位の占有スレッド数<URLグループ単位の占有スレッド数の総和
- 動的に変更できるのは,Webアプリケーション単位の同時実行スレッド数の設定です。Webコンテナ単位の同時実行スレッド数およびURLグループ単位の同時実行スレッド数は,動的に変更できません。
- 動的に変更された同時実行スレッド数の情報はJ2EEサーバには保存されません。このため,サービスを停止すると変更した値は無効になるので注意してください。
- Webアプリケーション単位の同時実行スレッド数の動的変更によって,Webアプリケーション単位の共有スレッド数が0以下になると,Webアプリケーション内のすべてのURLグループ単位で設定している占有スレッド数が使用できなくなります。
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.