WebSphere Application Server は、いくつかの Web サーバー製品およびバージョン用のプラグインを提供します。それ
ぞれの Web サーバーのオペレーティング・システムの組み合わせには、アプリケーション・パフォーマンスに影響を与える特定のチューニング・パラメーターがあります。
このタスクについて
以下は、Web サーバーに固有のチューニング・パラメーターのリストです。リストされたパラメーターは、サポートされる Web サーバーのすべてには適用されない場合があります。これらのパラメーターを使用する前に、Web サーバーの資料を確認してください。
プロシージャー
- IBM HTTP Server 2.0.47.1、Apache 2.0.48、IBM HTTP Server 6.0、および IBM HTTP Server 6.1 を調整します。 CPU 使用効率のモニターと IBM HTTP Server error_log および http_plugin.log ファイルの確認によって、Web サーバーのパフォーマンス上の問題を診断することができます。
また、以下のようにして、状況ページを表示するよう
IBM HTTP Server を構成することもできます。
これらすべての Web サーバーは、各クライアント接続を処理するためにスレッドを割り振ります。
並行クライアント接続の最大数に対して十分なスレッドを確実に使用可能にすることで、
この層がボトルネックにならないようにします。
これらの Web サーバーの設定は、Web サーバー・システムの httpd.conf ファイルを変更することによって調整することができます。
最大クライアント数 (MaxClients) に到達したという警告があるかどうかを調べるには、
IBM HTTP Server error_log ファイルを確認することができます。
特定のオペレーティング・システムのプラットフォームごとに、Web サーバーがサポートする
最大クライアント数を決定する幾つかのパラメーターがあります。
「MaxClients」パラメーターの説明については、http://httpd.apache.org/docs-2.0/mod/mpm_common.html#maxclients を参照してください。
- 数千の並行クライアントをサポートします。 単一の IBM HTTP Server システムが、
数千の並行クライアントをサポートすることは珍しくありません。
ユーザーの要求が、Web サーバー・オペレーティング・システムおよびハードウェアによってサポートされる
スレッド数以上の並行クライアントをサポートする場合は、複数の Web サーバーを使用することを検討してください。
- 「接続が拒否されました」エラー・メッセージに応答します。 一部のクライアントでは、
突然クライアント数が増加すると、「接続が拒否されました」エラー・メッセージを受信することがあります。
ListenBacklog パラメーターと StartServer パラメーターを増加すると、
このエラーを削減または除去することができます。
- ListenBacklog パラメーターは、オペレーティング・システムに、許可される保留中の最大接続数を示します。
IBM HTTP Server のデフォルトは 511 ですが、実際の値は、対応するオペレーティング・システム・パラメーター
に応じて、より高くまたは低くすることができます。
最大数の同時接続を処理するには、このパラメーターと、対応する OS パラメーターが、
予想される同時接続数 (おそらく数千) に設定されている必要があります。
(ご使用のオペレーティング・システムの調整に関する追加情報については、オペレーティング・システムの調整
を参照してください。)
- StartServers パラメーターは、初期に開始される IBM HTTP Server プロセスの数を示します。
これらの IBM HTTP Server スレッド/プロセスを事前に開始すると、
ユーザーが新規プロセスの開始を待つ必要性が減ります。
このパラメーターを MinSpareServers パラメーターと同じ値に設定して、
このクライアントの負荷に必要な最小 IBM HTTP Server プロセス数を即時に開始する必要があります。
- ユーザー数の変更に伴う、クライアント・スレッド/プロセスの頻繁な作成と破壊を防ぎます。 MinSpareServers および MaxSpareServers を使用して、
アイドル状態にある可能性があるサーバー (クライアント・スレッドまたはプロセス) の最大数と最小数を指定することができます。
ユーザー数の変更に伴う、クライアント・スレッド/プロセスの頻繁な作成と破壊を防ぐには、
この範囲を同時ユーザーの最大数を含むよう大きく設定します。
- Web サーバーの負荷を軽減するために、Web サーバーの Access logging パラメーターの設定を変更します。
アプリケーション・サーバーへのすべてのアクセスを記録する必要がない場合は、
Web サーバーの Access logging パラメーターのデフォルト値を変更します。
この変更によって、Web サーバーへの負荷が軽減されます。
- Load balancing オプションと Retry interval Web サーバー・プラグイン・プロパティーの設定を変更して、
パフォーマンスを改善します。
以下の Web サーバー・プラグイン構成プロパティーを変更することにより、IBM HTTP Server (WebSphere Web サーバー・プラグインを使用) のパフォーマンスを改良することができます。
- Load balancing オプション。プラグインが、Web サーバーに関連するさまざまなアプリケーション・
サーバーに要求を送信する際に使用するロード・バランシング・オプションを指定します。
デフォルトのロード・バランシング・オプションの
目標 (ラウンドロビン) は、クラスター・メンバーを介して作業の均等分散を提供することです。
ラウンドロビンは、アプリケーション・サーバーに要求を送信するという単一プロセスを持つ Web サーバーで
最も効果的に機能します。
Web サーバーが複数のプロセスを使用して、アプリケーション・サーバーに要求を送信する場合、
Random オプションのほうがクラスターを介して作業の均等分散をより多く提供する場合があります。
- Retry interval オプション。一時的に使用不可にマークされているサーバーへの
接続を試みるまでの待ち時間の長さを指定します。
プラグインは、サーバーへの接続が失敗した場合に、サーバーを一時的に使用不可にマークします。
デフォルト値は 60 秒ですが、負荷の大きい条件下でスループットを増やすために、
この値をより低く設定しなければならない場合があります。RetryInterval を低くすると、IBM HTTP Server がプロセスごとに 10 未満のスレッドを持つよう構成されている場合に役立ちます。
RetryInterval を低く設定することでスループットにどのような影響を与えるか?
プラグインが特定のアプリケーション・サーバーに接続しようとしているとき、
アプリケーション・サーバー・スレッドが他の接続の処理でビジー状態にある場合
(負荷が大きい状況で発生)、接続はタイムアウトになり、プラグインはサーバーを一時使用不可にマークすることがあります。
同じプラグイン処理が、同じサーバーに対して開かれている他の接続を持ち、これらの接続のいずれかで応答が受信される場合には、サーバーは再びマークされます。
IBM HTTP Server プロセスごとに数スレッドしかない場合、
このアプリケーション・サーバーには確立された接続が存在しないことがあります。
この状態が起こると、プラグインは再試行間隔全体で待機する必要があります。
注: RetryInterval の値が小さければパフォーマンスを向上できますが、すべてのアプリケーション・サーバーが実行しているときにこの設定値が低いと、いずれかのアプリケーション・サーバーがダウンしたときに不利な影響が起こる可能性があります。
この場合には、IBM HTTP Server プロセスごとに接続が試行されますが、
頻繁に失敗するため、待ち時間が増加して、スループット全体が減少する結果となります。
これらの変更を行うと、IBM HTTP Server は、より多くの WebSphere Application Server ユーザーをサポートすることができます。これらのプロパティーを変更するには、管理コンソールで、「サーバー」>「Web サーバー」>「
Web_server_name」>「プラグイン・プロパティー」>「要求ルーティング」をクリックします。
(プラグインの調整について詳しくは、Web サーバー・プラグインのチューニング・ヒント
を参照してください。)