HTTP Server パフォーマンスの管理

IBM HTTP Server for i Web サーバー環境のパフォーマンスは、多くのコンポーネントの影響を受けます。 コンポーネントを理解することは、重要な時点でパフォーマンス上の問題が発生した場合に、迅速に対応するのに役立ちます。

サーバーのパフォーマンスに影響を与える可能性のあるものがいくつかあります。 パフォーマンス関連の以下のトピックを考慮してください。

ローカル・キャッシュ

HTTP Serverのローカル・キャッシュを使用可能にすると、頻繁にアクセスされるファイルを (メモリー内に) キャッシュすることにより、パフォーマンスとシステム・スループットが向上する可能性があります。 ローカル・キャッシュに関連付けられたいくつかの設定を構成できます。

ローカル・キャッシュ設定を構成するには、以下のようにします。

  1. 「管理」 タブをクリックします。
  2. 「HTTP Server」サブタブをクリックします。
  3. 「サーバー」 リストから HTTP Server を選択します。
  4. 「サーバー・エリア」 リストから 「グローバル構成」 を選択します。
  5. 「サーバー・プロパティー」を展開します。
  6. 「キャッシュ」をクリックします。

このフォームからオプションを入力または選択します。 完了したら、 「OK」をクリックします。

サーバーの始動時にキャッシュに入れるファイル

「サーバーの始動時にキャッシュするファイル」 にファイル名を含めると、サーバーの始動時にファイルがサーバーのメモリーにロードされます。

  • 「メモリーにコピー」 は、サーバーを始動するたびにサーバーのメモリーにロードするファイルの名前を指定します。 最も頻繁に要求されるファイルをサーバーのメモリーにロードしておくことによって、それらのファイルに対するサーバーの応答時間を改善することができます。 例えば、サーバーのウェルカム・ページを始動時にメモリーにロードすると、サーバーはそのページの要求を、 ファイル・システムからファイルを読み取る場合よりはるかに迅速に処理できます。
  • 「ファイル記述子を開いたままにする」 は、サーバー始動時に記述子がキャッシュされる ASCII ストリーム・ファイルの名前を指定します。 最も頻繁に要求されるファイルをサーバー開始時に開いたままにしておくと、それらのファイルに対するサーバーの応答時間を向上させることができます。 例えば、サーバーのウェルカム・ページ・ファイルを開始時に開いておくと、サーバーは、そのページについての要求を、要求のたびに開く必要がある場合よりはるかに迅速に処理できます。 メモリーへのコピーよりもこのオプションを使用する利点は、ファイルの内容をキャッシュに入れないため、大量のメモリーを割り振らずに、同様のパフォーマンスを提供することです。 このオプションをメモリーへのコピーに対して使用する欠点は、ASCII ストリーム・ファイルのファイル記述子のみをキャッシュに入れ、サーバーがアクティブな間はファイルを開いたままにする (共有読み取り) ことです。
  • 「ファイルのメモリー・マップ」 オプションは、単にサーバー・メモリーのチャンクを使用するのではなく、メモリー・アドレス・ポインターを使用して、サーバーを始動するたびにサーバーのメモリーにマップするファイルの名前を指定するという点を除き、「メモリーへのコピー」と同じです。

「キャッシュ対象」 では、キャッシュに含める情報を指定できます。

  • 「ファイル使用量に基づいてファイルを動的にキャッシュする」 を選択すると、動的キャッシュが可能になります。 デフォルト値は「オフ」 (または使用不可) です。
  • 「ファイルが変更されたときにキャッシュを更新」 は、元のファイル・コンテンツが変更されるたびにキャッシュを更新します。 デフォルト値はオン (または、使用可能) です。

このフォームからオプションを入力または選択します。 完了したら、 「OK」をクリックします。

スレッド

サーバーは、クライアント要求を受け取るたびに、まず使用可能なスレッドがあるかどうかを確認し、次に使用可能なスレッドを使用して要求を処理します。 使用可能なスレッドがない場合は、スレッドが使用可能になるまで要求を保持します。 要求が終了すると、サーバー・スレッドはアイドル状態になります (その時点で、サーバーが再び使用できるようになります)。

注: HTTP Server のパフォーマンスは、スレッド数を増やすことによって向上する可能性がありますが、 IBM i のシステム・パフォーマンスは向上しません。

アクティブ・スレッドの最大数の設定が大きすぎると、システム・パフォーマンスが低下する可能性があります。 システム・パフォーマンスへの影響がなくなるまで、アクティブ・スレッドの最大数を減らしてみることができます。 開始点としては、前の設定の半分を使用することをお勧めします。 例えば、アクティブ・スレッドの最大数が 100 に設定されている場合は、50 に設定してみてください。 アクティブ・スレッド・ディレクティブの最大数を減らすと、サーバーがその容量に達したときに拒否される接続の数が増える可能性があります。

要求を処理するスレッドの数を変更するには、次のようにします。

  1. 「管理」 タブをクリックします。
  2. 「HTTP Server」サブタブをクリックします。
  3. 「サーバー」 リストから HTTP Server を選択します。
  4. 「サーバー・エリア」 リストから 「グローバル構成」 を選択します。
  5. 「サーバー・プロパティー」を展開します。
  6. 「システム・リソース」をクリックします。
  7. フォームの 「拡張」 タブをクリックします。

このフォームからオプションを入力または選択します。 完了したら、 「OK」をクリックします。

DNS ルックアップ

サーバーが DNS ルックアップを要求する必要があるたびに、DNS サーバーへの接続中に遅延が発生する可能性があります。 DNS ルックアップの使用を制限します。 IP アドレスをログに記録し、DNS ルックアップを実行するログ分析ツールを使用することを検討してください。

サーバー・サイド・インクルード

サーバー・サイドの組み込みが処理されると、サーバーのパフォーマンスに影響を与える可能性があります。 必要な場合を除き、サーバー・サイド・インクルードの使用を制限します。

コンテンツ・ネゴシエーション

コンテンツ・ネゴシエーションを、それが必要なコンテキストに制限します。

文書ツリー

文書ツリーを、狭い深さのツリー構造ではなく、平らな広範囲のツリー構造に編成するようにしてください。 ディレクトリー・レベルの数が少ないほど、パフォーマンスは向上します。

パフォーマンスを向上させるには、静的ファイルと Net.Data® ファイルをルート (または/) ファイル・システムに保管します。 QSYS および QDLS ファイル・システムに静的ファイルおよび Net.Data ファイルを置かないようにしてください。

.htaccess ファイル

サーバーが .htaccess ファイルを探して開く必要がある場合は、サーバーのパフォーマンスが影響を受けます。 AllowOverrideAllowOverrideList ディレクティブが両方とも None に設定されていると、 サーバは .htaccess ファイルを探しません。 AllowOverride または AllowOverrideList が All に設定されている場合、サーバはすべてのディレクトリで .htaccess ファイルを探すので、パフォーマンスに大きな影響があります。

仮想ホスト・ログ・ファイル

仮想ホストごとに別個のログ・ファイルを作成する場合は、ログ・ファイルごとにファイル記述子が開かれることを考慮する必要があります。 オープンするファイル記述子が多すぎると、システム・パフォーマンスに影響する可能性があります。

KeepAliveおよびKeepAliveTimeout

接続タイムアウトは、サーバーが持続接続を閉じる前に後続の要求を待機する秒数を決定します。 持続接続を有効にすると、サーバーのスループットが向上します。 イメージのない単純なページがある場合は、接続タイムアウトを減らすことを検討してください。

この値を設定するには、以下のようにします。

  1. 「管理」 タブをクリックします。
  2. 「HTTP Server」サブタブをクリックします。
  3. 「サーバー」 リストから HTTP Server を選択します。
  4. 「サーバー・エリア」 リストから 「グローバル構成」 を選択します。
  5. 「サーバー・プロパティー」を展開します。
  6. 「システム・リソース」をクリックします。
  7. フォームの「 HTTP Connections 」タブをクリックする。
  8. 「接続タイムアウト」の値を入力するか、リストから選択します。
  9. 「最大保留接続数」に値を入力するか、リストから選択します。
  10. 「持続接続を許可」「有効」 を選択します。
  11. 要求間の待機時間」に値を入力するか、リストから選択します。
  12. 「接続ごとの最大要求数」に値を入力するか、リストから選択します。
  13. 「OK」をクリックします。

ロギング

ロギング・サーバーのアクティビティーは、サーバーのパフォーマンスに影響を与えます。 必要なだけエラーおよびアクセス・ロギングを実行してください。

CGI プログラム

最高のパフォーマンスを得るためには, CGI プログラムを名前付き活動化グループで実行しなければなりません。 また、サーバーが通常使用する CGI ジョブも判別します。 StartCGI ディレクティブと StartThreadedCGI ディレクティブを使って、 サーバの起動時にこれらのジョブを開始します。 QTMHHTP1 ユーザー・プロファイルを使用して、CGI 要求を実行します。 別のユーザー・プロファイルを使用する必要がある場合は、以下の代わりに「ダミー」ユーザー・プロファイル (サインオンが許可されていないユーザー・プロファイル) を使用してください。%%CLIENT%%.

TCP/IP 設定

TCP/IP 設定の詳細については、 TCP/IP アプリケーション、プロトコル、およびサービス を参照してください。

ネットワーク

データが流れるネットワークのパフォーマンスも、サーバーのパフォーマンスの認識に影響を与える可能性があることを考慮してください。