ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server Java EE運用ガイド

7.6 Webコンテナのチューニング

Webコンテナの処理の流れ

Webコンテナは以下の流れでクライアントからリクエストを受け付けて処理します。

  1. Webサーバがクライアントからリクエストを受け付け、Webサーバコネクタ経由でWebコンテナへ送信する。

  2. WebコンテナがWebサーバコネクタからリクエストを受け付ける。

  3. 受け付けたリクエストを一時的にHTTP接続キューに格納する。

  4. 要求処理スレッドは一定間隔でHTTP接続キュー内を監視する。

  5. HTTP接続キューにリクエストがあった場合、要求処理スレッドはリクエストを処理する。

上記はWebコンテナのチューニングポイントとして以下の2つに分類できます。

Webコンテナの処理の流れの5.は同時処理数に関係しています。
5.は「初期スレッド数」、「スレッド数」、「スレッドの増分」で設定することが可能です。

Webコンテナの処理の流れの1.、2.、3.は接続数に関係しています。
1.は「WebサーバコネクタのWebコンテナへの最大接続数」で設定することが可能です。
2.は「最大保留カウント」で設定することが可能です。
3.は「キューサイズ」で設定することが可能です。


以下に、リクエストの流れを基に各設定項目の関係を示します。

同時処理数

同時処理数およびサーバーインスタンスを追加すると、Webアプリケーションの同時実行多重度を増やせます。
同時処理数を増やすと、1プロセスあたりの実行多重度を増やせますが、同時処理数が増えることによる負荷や資源の増加により効果はみられない可能性があります。通常はデフォルト値以下で運用することを推奨しています。
アプリケーションから呼び出すEJBの「7.7.3 Enterprise Beanインスタンスのプーリング」と「7.7.2 Enterprise Beanインスタンスのキャッシング」、JDBCのコネクション数にあわせてチューニングしてください。
同時処理数については、以下が設定できます。

同時処理数は、Interstage Java EE管理コンソールの[設定] > [クラスタ名-config] または [server-config] > [HTTP サービス] > [要求処理]タブ、およびasadminコマンドを使用して変更できます。詳細については、以下のマニュアルを参照してください。

接続数

接続数は、運用するシステムの要求の違いによって以下のように設定します。

接続数に関する設定項目について、以下に説明します。

WebサーバコネクタのWebコンテナへの最大接続数
  • WebサーバとWebコンテナを同一マシン内で運用する場合
    Interstage Java EE管理コンソールの[クラスタ] または[スタンドアロンインスタンス] > [クラスタ名] または[サーバーインスタンス名] > [Webサーバコネクタ]タブ、およびasadminコマンドを使用して変更できます。詳細については、以下のマニュアルを参照してください。

  • WebサーバとWebコンテナをそれぞれ別のマシンで運用する場合
    Webサーバを運用するマシン側で設定します。
    Interstage管理コンソールからWebサーバコネクタの最大接続数で設定します。また、isj2eeadminコマンドでも設定できます。詳細については、以下のマニュアルを参照してください。

    • Interstage管理コンソールのヘルプ

    • 「リファレンスマニュアル(コマンド編)」の「isj2eeadmin」

Webコンテナの最大保留カウント

本項目の値を増やすと、Webコンテナが同時に受け付けることができるリクエスト数を増やせます。運用中に高負荷な状態となった場合に想定される、クライアントからの同時リクエスト数を指定しておくことを推奨します。

最大保留カウントは、Interstage Java EE管理コンソールの[設定] > [クラスタ名-config] または [server-config] > [HTTPサービス] > [接続プール]タブ、およびasadminコマンドを使用して変更できます。詳細については、以下のマニュアルを参照してください。

注意

最大保留カウントに設定された値はWebコンテナが使用するSocketのbacklogに設定されます。Socketのbacklogに設定した値はOSによって有効となる範囲が決まっていますので、最大保留カウントに設定した値がすべて有効となるわけではありません。
Socketのbacklogの有効範囲については各OSのドキュメントを参照してください。
なお、Windows (R)の場合、200より大きな値を設定しても有効になりません。

Webコンテナのキューサイズ

本項目の値を増やすと、Webコンテナが受け付けたクライアントからのリクエストを、Webコンテナが処理できるようになるまでの間保持する数を増やせます。
運用時に一時的に負荷が高くなり、Webコンテナの同時処理数を超えるリクエストを受け付けることが想定される場合は、Webコンテナの同時処理数を抑えて、Webコンテナのキューサイズに大きな値を設定することで、サーバ全体のレスポンスの悪化を防ぐことができます。

  • 設定ポイント1:
    運用時に一時的に負荷が高くなり、クライアントからのリクエスト処理に失敗しかつ、サーバーログにWEB1505が出力されている場合は、キューサイズを大きくしてください。

  • 設定ポイント2:
    キューサイズを増やしてリクエストを処理することができるだけの十分に大きなキューを用意した場合、クライアントからのリクエストに対するレスポンスに遅れが生じる可能性があります。Webサーバコネクタの送受信タイムアウト値を増やしてください。

キューサイズは、Interstage Java EE管理コンソールの[設定] > [クラスタ名-config] または [server-config] > [HTTPサービス] > [接続プール]タブ、およびasadminコマンドを使用して変更できます。詳細については、以下のマニュアルを参照してください。

Webサーバコネクタの送受信タイムアウト
  • WebサーバとWebコンテナを同一マシン内で運用する場合
    Interstage Java EE管理コンソールの[クラスタ] または[スタンドアロンインスタンス] > [クラスタ名] または[サーバーインスタンス名] > [Webサーバコネクタ]タブ、およびasadminコマンドを使用して変更できます。詳細については、以下のマニュアルを参照してください。

  • WebサーバとWebコンテナをそれぞれ別のマシンで運用する場合
    Webサーバを運用するマシン側で設定します。
    Interstage管理コンソールからWebサーバコネクタの送受信タイムアウトで設定します。また、isj2eeadminコマンドでも設定できます。詳細については、以下のマニュアルを参照してください。

    • Interstage管理コンソールのヘルプ

    • 「リファレンスマニュアル(コマンド編)」の「isj2eeadmin」