■同時処理数
同時処理数およびプロセス多重度を増やすと、Webアプリケーションの同時実行多重度を増やせます。
同時処理数を増やすと、1プロセスあたりの実行多重度を増やせますが、同時処理数が増えることによる負荷や資源の増加により効果はみられない可能性があります。通常はデフォルト値以下で運用することを推奨しています。
アプリケーションから呼び出すEJBの同時処理数や、JDBCのコネクション数にあわせてチューニングしてください。
同時処理数は、Interstage管理コンソールのServletコンテナ設定で指定します。また、isj2eeadminコマンドを使用して設定することもできます。
同時処理数については、以下が設定できます。
初期値(増分値)
待機中(アイドル状態)の処理スレッドの最大値
最大値
処理スレッドの処理完了後、待機中となり使用されていない処理スレッドは、1分間隔の監視によって、待機中の最大値をこえている分が解放されます。
これにより、一時的に負荷が高くなった場合でも、負荷が下がればサーバ資源を解放し節約することができます。
■接続数
接続数に関する設定項目としては以下があります。
WebサーバコネクタのServletコンテナへの最大接続数
Interstage管理コンソールで指定します。
Webサーバとワークユニットを同一マシンで運用する場合
ワークユニットの環境設定のWebサーバコネクタ(コネクタ)設定
Webサーバとワークユニットを同一マシンで運用しない場合
Webサーバコネクタの環境設定
また、isj2eeadminコマンドを使用して設定することもできます。
Servletコンテナの接続数(最大接続数)
Interstage管理コンソールのServletコンテナ設定で指定します。
また、isj2eeadminコマンドを使用して設定することもできます。
上記項目の値を増やすとServletコンテナが受付けるクライアントからのリクエストの数を増やせます。
運用時に一時的に負荷が高くなりServletコンテナの同時処理数を超えるリクエストを受付けることが想定される場合は、Servletコンテナの同時処理数を抑えてServletコンテナの接続数(最大接続数)に大きな値を設定することで、サーバ全体のレスポンスの悪化を防ぐことができます。
接続数は、運用するシステムの要求の違いによって以下のように設定します。
Servletコンテナの負荷が高く処理できないリクエストを時間がかかってもかまわないので、正常に処理させたい場合
項目 | 設定値 |
---|---|
Servletコンテナの最大接続数 | リクエストを処理できるだけの十分に大きな値を設定 |
WebサーバコネクタのServletコンテナへの接続数の制限 | なし(無制限) |
Servletコンテナの負荷が高く処理できないリクエストは長時間待たせるのではなく、エラーとしてクライアントに通知したい場合
項目 | 設定値 |
---|---|
Servletコンテナの最大接続数 | リクエストを処理できるだけの十分に大きな値を設定 |
WebサーバコネクタのServletコンテナへの接続数の制限 | Servletコンテナが処理可能な数を設定 |
Servletコンテナへの接続数がServletコンテナの同時処理数の最大値を超えた場合、超えた分の接続はKeepAliveされませんので、Servletコンテナの同時処理数の最大値を超えない場合と比較して多くのSocketを消費します。
接続数の最大値に設定された値はServletコンテナが使用するSocketのbacklogに設定されます。
Socketのbacklogに設定した値はOSによって有効となる範囲が決まっていますので、接続数の最大値に設定した値がすべて有効となるわけではありません。
Socketのbacklogの有効範囲については各OSのドキュメントを参照してください。
Windows (R)の場合、200より大きな値を設定しても有効になりません。
■タイムアウト
タイムアウトの監視項目
タイムアウトに関しては、以下が監視されています。
監視項目 | 意味 |
---|---|
(1) | WebサーバコネクタがServletコンテナとの間でデータパケットを送受信するときに待機する時間 |
(2) | Servletコンテナに接続されてからリクエストの処理が開始されるまでの待ち時間(値を指定することはできません) |
(3) | ServletコンテナがWebサーバコネクタからのデータパケットを受信するときに待機する時間 |
(4) | ユーザアプリケーションの処理時間 |
それぞれの項目が監視されるタイミングを下図に示します。
タイムアウトの設定項目
タイムアウトに関する設定項目には以下があります。
設定項目 | 意味 |
---|---|
(a) | Webサーバコネクタの送受信タイムアウト
|
(b) | Servletコンテナのタイムアウト |
(c) | ワークユニットのアプリケーション最大処理時間 |
上記は、isj2eeadminコマンドを使用して設定することもできます。
以下の現象が頻繁に発生する場合、(a)、(c)の値を大きくすることで回避できる可能性があります。(a)、(c)の値を大きくしても回避できない場合は、サーバの処理能力を超えている可能性があります。サーバの増設または、より性能の良いサーバへのリプレースを検討してください。
コンテナログにIJServer32113が出力される
WebサーバコネクタのログにIJServer12035、IJServer12044が出力される
以下の現象が頻繁に発生する場合、(b)の値を大きくすることで回避できる可能性があります。回避できない場合はネットワークやクライアントアプリケーションに問題がある可能性があります。発生している問題を解決してください。
リクエストデータの読み込みでサーブレットにjava.net.SocketTimeoutExceptionがスローされる
WebサーバコネクタのログにIJServer12026、IJServer12027、IJServer12034、IJServer12036が出力される
タイムアウトの設定方法
タイムアウトの設定値は、以下の関係を満たすように値を設定します。
設定項目(a) > 監視項目(2) + 監視項目(3) + 監視項目(4) |
以下の条件に該当する場合、IJServerが強制停止されます。
設定項目(b) > 設定項目(c)に設定した場合、かつ、
[ワークユニット設定] > [アプリケーション最大処理時間超過時の制御]を“プロセスを強制停止する”に設定した場合、かつ
タイムアウトの監視項目の図における“データの送信2”が設定項目(c)を超えても完了しなかった場合
以下に設定した場合、WebブラウザにはWebサーバコネクタのタイムアウトが通知されます。
設定項目(a) < 監視項目(2) + 監視項目(3) + 監視項目(4)
しかし、ServletコンテナはWebサーバコネクタがタイムアウトしたことを検出することはできないため、アプリケーションを継続して実行し、監視項目(3)の時間内に処理が完了した場合は、Servletコンテナ側で異常を検出することができません。
監視項目(4)の時間にはPOSTデータの読み込み時間も含まれます。