2.17.2 同時実行スレッド数の動的変更の流れ
Webアプリケーションの最大同時実行スレッド数を動的に変更するための準備と手順を次に示します。
- 準備
-
Webアプリケーションの最大同時実行スレッド数の動的変更は,J2EEサーバおよびWebアプリケーションを含むJ2EEアプリケーションが起動,開始されている状態で実行します。
J2EEサーバの起動ついては,マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「4.1.24 システムを起動する(CUI利用時)」を参照してください。J2EEアプリケーションの開始を含むシステムの起動方法については,マニュアル「アプリケーションサーバ システム構築・運用ガイド」の「4.1.29 業務アプリケーションを設定して開始する(CUI利用時)」を参照してください。
- 手順
-
次の手順で実行します。
-
Webアプリケーションの稼働状況を監視して,最大同時実行スレッド数を変更する必要があるかどうかを確認する((1)参照)
運用管理コマンドを使用して実行します。
-
必要と判断した場合,Webアプリケーションの最大同時実行スレッド数を変更する((2)参照)
運用管理コマンドを使用して実行します。
-
Webアプリケーションの稼働状況を確認して,改善されたことを確認する((1)参照)
運用管理コマンドを使用して実行します。
-
(1) Webアプリケーションの稼働状況の確認
稼働中のWebアプリケーションの稼働状況を確認します。Webアプリケーションの稼働状況は,運用管理コマンド(mngsvrutil)で確認できます。確認した結果,例えば,次のような場合には,最大同時実行スレッド数を変更することを検討してください。
-
稼働スレッド数に比べて実行待ちスレッド数が極端に多い状況を想定していない場合に,稼働スレッド数に比べて実行待ちスレッド数が極端に多いとき
-
Webアプリケーション単位の実行待ちリクエスト数の現在値が,Webアプリケーション単位の実行待ちリクエスト数の最大値に近づいている状況を想定していない場合に,Webアプリケーション単位の実行待ちリクエスト数の現在値が,Webアプリケーション単位の実行待ちリクエスト数の最大値に近づいているとき
-
Webアプリケーション単位の実行待ちキューからリクエストがあふれる状況を想定していない場合に,その実行待ちキューからリクエストがあふれているとき
なお,監視した結果,一時的にではなく恒常的に最大同時実行スレッド数を変更する必要があると判断した場合は,動的変更をするのではなく,Webアプリケーションを停止して,最大同時実行スレッド数の設定をし直してください。Webアプリケーションを停止した状態でのWebコンテナでの最大同時実行スレッド数の制御の設定については,「2.14 Webコンテナ単位での同時実行スレッド数の制御」,「2.15 Webアプリケーション単位での同時実行スレッド数の制御」,および「2.16 URLグループ単位での同時実行スレッド数の制御」を参照してください。
Webアプリケーションの稼働状況を確認するには,mngsvrutilコマンドに,サブコマンド「get」を指定して実行します。
実行形式および実行例を次に示します。なお,mngsvrutilコマンドの詳細については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「mngsvrutil(Management Serverの運用管理コマンド)」を参照してください。
- 実行形式
mngsvrutil -m <Management Serverのホスト名>[:<ポート番号>] -u <管理ユーザID> -p <管理パスワード> -t <ホスト名> -k host get webApps
- 実行例
mngsvrutil -m mnghost -u user01 -p pw1 -t host01 -k host get webApps
コマンドの実行結果は,標準出力またはファイルに出力されます。
Webアプリケーションの稼働情報のうち,Webアプリケーションの最大同時実行スレッド数を変更する場合に参考になる情報は,次に示すヘッダ情報の項目で確認できます。なお,N秒とは,運用監視で設定しているサンプリング時間です。
- maxThreads(最大スレッド数)の確認方法
-
mngsvrutilコマンドの実行結果からcurrentThreadCountUpperBoundの値を確認します。
または,Webアプリケーションの稼働情報ファイルに出力される情報からActiveThreadCount.UpperBoundの値を確認します。
- exclusiveThreads(占有スレッド数)の確認方法
-
mngsvrutilコマンドの実行結果およびWebアプリケーションの稼働情報ファイルに出力される情報共に反映されません。
- queueSize(Webアプリケーション単位の実行待ちキューサイズ)
-
mngsvrutilコマンドの実行結果に反映されません。
Webアプリケーションの稼働情報ファイルに出力される情報からWaitingRequestCount.UpperBoundの値を確認します。
(2) Webアプリケーションの最大同時実行スレッド数の設定変更
稼働状況を確認したWebアプリケーションの次の項目を,必要に応じて変更します。
-
最大同時実行スレッド数
-
占有スレッド数
-
実行待ちキューサイズ
これらの項目は,運用管理コマンド(mngsvrutil)を使用して変更できます。ここで設定した値は,Webアプリケーションを停止するまで有効です。
- 注意事項
-
Webアプリケーションの最大同時実行スレッド数の動的変更実行中(mngsvrutilコマンドにサブコマンド「change」を指定して実行している間)は,J2EEアプリケーションのデプロイおよびアンデプロイは実行しないでください。
Webアプリケーションの最大同時実行スレッド数を動的に変更するには,mngsvrutilコマンドに,サブコマンド「change」を指定して実行します。
実行形式を次に示します。なお,mngsvrutilコマンドの詳細については,マニュアル「アプリケーションサーバ リファレンス コマンド編」の「mngsvrutil(Management Serverの運用管理コマンド)」を参照してください。
(a) 実行形式
mngsvrutil -m <Management Serverのホスト名>[:<ポート番号>] -u <管理ユーザID> -p <管理パスワード> -t <ホスト名> -k host change webAppThreadCtrl <Webアプリケーションのコンテキストルート> <最大同時実行スレッド数>,<占有スレッド数>,<Webアプリケーション単位の実行待ちキューサイズ>
次に,実行例を示します。この例では,次の表に示すように設定を変更します。なお,Webアプリケーションの名称は,「WebAP1」とします。
設定対象 |
設定項目 |
変更前の設定値 |
変更後の設定値 |
---|---|---|---|
Webコンテナ |
最大同時実行スレッド数 |
10 |
10(変更できません) |
Webアプリケーション(WebAP1) |
最大同時実行スレッド数 |
7 |
8 |
占有スレッド数 |
4 |
5 |
|
実行待ちキューサイズ |
8 |
10 |
(b) 実行例
mngsvrutil -m mnghost -u user01 -p pw1 -t host01 -k host change webAppThreadCtrl "WebAP1" 8,5,10
設定内容は,コマンド実行後,すぐに反映されます。