この章の内容は、次のとおりです。
次の各項で、Oracle HTTP Serverの処理モデルについて説明します。
Oracle HTTP Serverを起動すると、HTTP(S)リクエストをリスニングしてレスポンスを返す準備ができたことになります。Microsoft Windowsシステムでのリクエスト処理モデルは、UNIXシステムでのモデルとは異なります。
Microsoft Windowsの場合は、親プロセスと子プロセスが1つずつあります。子プロセスにより、クライアント・リクエストのハンドリングを担当するスレッドが作成されます。作成されるスレッドの数は静的で、パフォーマンス向上のために構成可能です。
UNIXの場合、複数の子プロセスを管理する親プロセスは1つです。子プロセスは、リクエストのハンドリングを担当します。親プロセスは、構成に基づき、必要に応じて追加の子プロセスを作成します。サーバーでは動的に追加の子プロセスを開始できますが、追加の子プロセスを作成しなくても、リクエストを処理できる十分な子プロセスを最初から開始するようにサーバーを構成することが最善策です。
Oracle HTTP Serverは、親プロセスに障害が発生した場合に単一ユニットとして終了する機能が備わっています。親プロセスは、Oracle HTTP Serverインスタンスのすべての子プロセスを起動および停止する役割を持ちます。子プロセスを停止する前に親プロセスに障害が発生すると、Oracle HTTP Serverは不整合な状態になります。この状態を修正するには、親のないすべての子プロセスを手動で停止するしかありません。新しいOracle HTTP Serverインスタンスがアクセスする必要のあるポートは親のない子プロセスによってまだ占有されているため、すべての子プロセスを閉じるまで、新しいOracle HTTP Serverを起動することはできません。
この状況を回避するため、UNIXでは子プロセス内のDMSインストゥルメンテーション・レイヤーにより、WindowsではWinNT MPM内のモニター機能により、親プロセスがモニターされます。親プロセスの障害発生が検出されると、残りの子プロセスはすべて停止されます。
Oracle Fusion Middlewareは、Oracle HTTP ServerおよびOracle WebLogic Serverプロキシ・プラグイン・モジュールの実行時パフォーマンスを自動的かつ継続的に測定します。パフォーマンス・メトリックは自動的に有効になるため、メトリックを収集するためにオプションの設定や追加構成の実行は必要ありません。アプリケーションの実行速度が遅い、アプリケーションがハングするなどの問題が発生した場合は、特定のメトリックを表示して、その問題の詳細情報を調べることができます。
Fusion Middleware Controlにはリアルタイム・データが表示されます。履歴データを表示する必要がある場合は、Cloud Controlの使用を検討してください。
この項の内容は次のとおりです。
この項では、Oracle HTTP Serverのパフォーマンス分析に役立つ、最もよく使用されるメトリックを示します。
OHSサーバー・メトリック
「OHSサーバー・メトリック」フォルダには、Oracle HTTP Serverのパフォーマンス・メトリック・オプションが含まれます。次の表に、「OHSサーバー・メトリック」フォルダに含まれるメトリックを示します。
要素 | 説明 |
---|---|
CPU使用率 |
CPU使用率とアイドル時間 |
メモリー使用量 |
メモリー使用量と空きメモリー(MB単位) |
プロセス |
ビジーおよびアイドル・プロセス・メトリック |
リクエスト・スループット |
リクエスト/秒単位で測定されたリクエスト・スループット |
リクエスト処理時間 |
リクエスト処理時間(秒単位) |
レスポンス・データ・スループット |
レスポンス・データ・スループット(KB/秒単位) |
レスポンス・データ処理 |
レスポンス・データ処理(KB/レスポンス単位) |
アクティブなHTTP接続 |
アクティブなHTTP接続の数 |
接続期間 |
接続時間の長さ |
HTTPエラー |
HTTP 4xxおよび5xxエラーの数 |
OHS仮想ホスト・メトリック
「OHS仮想ホスト・メトリック」フォルダには、仮想ホスト(アクセス・ポイントとも呼ばれる)のパフォーマンス・メトリック・オプションが含まれます。次の表に、「OHS仮想ホスト・メトリック」フォルダに含まれるメトリックを示します。
要素 | 説明 |
---|---|
仮想ホストに対するリクエスト・スループット |
各仮想ホストに対する1秒当たりのリクエストの数 |
仮想ホストに対するリクエスト処理時間 |
各仮想ホストで1つのリクエストを処理する時間 |
仮想ホストに対するレスポンス・データ・スループット |
各仮想ホストで送信されたデータの量 |
仮想ホストに対して処理されたレスポンス・データ |
各仮想ホストで処理されたデータの量 |
OHSモジュール・メトリック
「OHSモジュール・メトリック」フォルダには、モジュールのパフォーマンス・メトリック・オプションが含まれます。次の表に、「OHSモジュール・メトリック」フォルダに含まれるメトリックを示します。
要素 | 説明 |
---|---|
リクエスト・ハンドリング・スループット |
モジュールのリクエスト・ハンドリング・スループット(リクエスト/秒単位) |
リクエスト・ハンドリング時間 |
モジュールのリクエスト・ハンドリング時間(秒単位) |
モジュール・メトリック |
モジュールと、各モジュールのアクティブ・リクエスト、スループットおよび時間 |
次のいずれかの手順を使用して、Oracle HTTP ServerおよびOracle WebLogic Serverプロキシ・プラグイン・モジュールのパフォーマンス・メトリックを参照できます。
メトリックは、Fusion Middleware ControlのOracle HTTP Serverホーム・メニューから表示できます。
コマンド行からインスタンスのメトリックの取得と表示を行うには、接続して、適切なWLSTコマンドを発行する必要があります。これらのコマンドを使用して、次のような機能のいずれかを実行できます。
メトリック表名の表示
メトリック表の表示
メトリックのダンプ
注意:
WLSTの使用方法の詳細は、『WebLogic Scripting Toolの理解』を参照してください。
この手順を実行してみる前に、次の内容を実行します。
コマンド行からサーバー・メトリックにアクセスを試みる前に、次の内容を確認してください。
ドメインが存在し、メトリックを表示するインスタンスが存在すること。
インスタンスが実行中であること。
インスタンスのマシン上でノード・マネージャが実行中であること。
管理サーバーが動作中でも構いませんが、必要条件ではありません。
WLSTを使用してメトリックを表示するには、次の手順を実行します。
注意:
管理対象ドメインとスタンドアロン・ドメインのいずれの種類においても、同一のマシンまたはサーバーに対してリモートのマシンのいずれからコマンドを実行したかによらず、次の手順が機能します。
次の項では、Oracle HTTP Serverのパフォーマンス・ディレクティブについて説明します。
Oracle HTTP Serverでは、httpd.confおよび他の構成ファイルで宣言されたディレクティブが使用されます。この構成ファイルは、同時に処理できるHTTPリクエストの最大数、ロギングの詳細、および特定の制限やタイムアウトを指定するものです。Oracle HTTP Serverでは次のMulti-Processing Module (MPM)をサポートし、またこれらが付属しています。これらのモジュールは、マシン上のネットワーク・ポートへのバインド、リクエストの受入れ、およびリクエストを処理するための子のディスパッチを行います。
Worker: これはUNIX (Linux以外)環境のOracle HTTP Serverに対するデフォルトのMPMです。このMPMは、マルチプロセスでマルチスレッドのハイブリッド・サーバーを実装します。このサーバーは、リクエストの処理にスレッドを使用することで、プロセスベースのサーバーよりも少ないシステム・リソースで多数のリクエストを処理できます。しかし、このサーバーは、それぞれが多数のスレッドを持つ複数のプロセスを常に使用可能にしておくため、安定性はプロセスベースのサーバーとほとんど変わりません。Worker MPMを使用している場合、CGIアプリケーション用にmod_cgiではなくmod_cgidモジュールを構成する必要があります。詳細は、次のURLを参照してください。
WinNT: これはWindowsプラットフォーム上のOracle HTTP Serverに対するデフォルトのMPMです。単一の子プロセスを起動し、次にこれによってリクエストを処理するスレッドが作成される、単一の制御プロセスが使用されます。
Prefork: このMPMは、Apache 1.3と同様の方法でリクエストを処理する、スレッドを使用しないプリフォーク・サーバーを実装します。これは、スレッド・セーフでないライブラリとの互換性のためにスレッドを回避する必要のあるサイトに適しています。またこのMPMは、1つのリクエストに関連する問題が他のリクエストに影響を与えないように、各リクエストを分離する場合に最も適しています。このMPMと一緒にCGIモジュールを実装する場合には、mod_fastcgiのみを使用してください。
Event: これはLinux環境のOracle HTTP Serverに対するデフォルトのMPMです。このMPMは、一部の処理をサポートしているスレッドに渡し、新しいリクエストを処理するメイン・スレッドを解放することで、より多くのリクエストを同時に処理できるように設計されています。これはハイブリッド・マルチプロセス、マルチスレッド・サーバーを実装するWorker MPMに基づきます。ランタイム構成ディレクティブはWorkerにより提供されるものと同じです。
次の項では、スタンドアロンおよびOracle WebLogic ServerドメインのOracle HTTP Serverインスタンス用のMPMタイプの値を変更する方法について説明します
この項での説明および推奨は、スレッドを使用するWorker MPM、Event MPMまたはWinNT MPMに基づいています。Prefork MPMを使用している場合、次に示すスレッド関連ディレクティブは適用不可です。
次の図に示すFusion Middleware Controlの「パフォーマンス・ディレクティブ」ページでは、Oracle HTTP Serverのパフォーマンス関連ディレクティブをチューニングできます。
パフォーマンス・ディレクティブの管理は、リクエスト構成、接続構成およびプロセス構成という領域で構成されます。次の各項では、これらの構成を設定する方法について説明します。
Fusion Middleware Controlを使用してOracle HTTP Serverのリクエスト構成を指定するには、次の手順を実行します。
リクエスト構成設定が保存され、「パフォーマンス・ディレクティブ」ページに表示されます。
Fusion Middleware Controlを使用して接続構成を指定するには、次の手順を実行します。
接続構成設定が保存され、「パフォーマンス・ディレクティブ」ページに表示されます。
子プロセスと構成設定は、サーバーによるリクエスト処理能力に影響します。状況によっては、サーバーの良好なパフォーマンスを維持するために、リクエスト数を増加または減少させるように設定を変更する必要があります。
UNIXの場合、子サーバー・プロセスのデフォルト数は3です。Microsoft Windowsの場合、リクエストを処理するためのスレッドのデフォルト数は150です。
Fusion Middleware Controlを使用してプロセス構成を指定するには、次の手順を実行します。
プロセス構成設定が保存され、「パフォーマンス・ディレクティブ」ページに表示されます。
デフォルトでは、Oracle HTTP Serverは、UNIXでの予約済の範囲内にあるポート(通常1024未満)にバインドできません。Oracle HTTP Serverが、UNIXでの予約済の範囲内にあるポート(ポート80とポート443など)でリスニングできるようにするには、特権ポートでのOracle HTTP Serverインスタンスの起動(UNIXのみ)を参照してください。