7 サーバー・プロセスの管理およびモニタリング
Oracle HTTP Serverのパフォーマンスを管理およびモニタリングするために役立つツールおよび手順があります。
この章の内容は次のとおりです。この項では、現在の環境でサーバーを管理する手順とツールについて説明します。
- Oracle HTTP Serverの処理モデル
Oracle HTTP Serverのモニタリングに役立つ処理モデルには、リクエスト処理モデルと単一ユニットの処理モデルの2つのタイプがあります。 - サーバーのパフォーマンスのモニタリング
Oracle Fusion Middlewareでは、Oracle HTTP ServerおよびOracle WebLogic Serverプロキシ・プラグイン・モジュールの実行時パフォーマンスが自動的かつ継続的に測定されます。 - Oracle HTTP Serverのパフォーマンス・ディレクティブ
Oracle HTTP Serverのパフォーマンスは、構成ファイルで指定されたディレクティブによって管理されます。Oracle HTTP Serverのパフォーマンス関連のディレクティブをチューニングするには、Fusion Middleware Controlを使用します。 - UNIXのプロセス・セキュリティの理解
UNIXにインストールするときに、Oracle HTTP Serverを特権ポートにバインドできるようにするには、特別な構成が必要です。
親トピック: Oracle HTTP Serverの管理
Oracle HTTP Serverの処理モデル
Oracle HTTP Serverのモニタリングに役立つ処理モデルには、リクエスト処理モデルと単一ユニットの処理モデルの2つのタイプがあります。
次の各項で、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インスタンスがアクセスする必要のあるポートは親のない子プロセスによってまだ占有されているため、すべての子プロセスを閉じるまで、新しいOracle HTTP Serverを起動することはできません。
この状況を回避するため、UNIXでは子プロセス内のDMSインストゥルメンテーション・レイヤーにより、WindowsではWinNT MPM内のモニター機能により、親プロセスがモニターされます。親プロセスの障害発生が検出されると、残りの子プロセスはすべて停止されます。
親トピック: Oracle HTTP Serverの処理モデル
サーバーのパフォーマンスのモニタリング
Oracle Fusion Middlewareでは、Oracle HTTP ServerおよびOracle WebLogic Serverプロキシ・プラグイン・モジュールの実行時パフォーマンスが自動的かつ継続的に測定されます。
サーバーのパフォーマンス・メトリックは自動的に有効になるため、メトリックを収集するためにオプションの設定や追加構成の実行は必要ありません。アプリケーションの実行速度が遅い、アプリケーションがハングするなどの問題が発生した場合は、メトリックを表示して、その問題の詳細情報を調べることができます。Fusion Middleware Controlにはリアルタイム・データが表示されます。Cloud Controlを使用すると、履歴データを表示できます。
次の各項では、パフォーマンス・メトリックとそれらを表示する方法について説明します。
- Oracle HTTP Serverパフォーマンス・メトリック
- パフォーマンス・メトリックの表示
Oracle HTTP ServerおよびOracle WebLogic Serverプロキシ・プラグイン・モジュールのパフォーマンス・メトリックは、Fusion Middleware Controlを使用するか、適切なWLSTコマンドを発行して表示できます。サーバーのパフォーマンスをモニタリングおよび分析するには、パフォーマンス・メトリックを表示します。
親トピック: サーバー・プロセスの管理およびモニタリング
Oracle HTTP Serverパフォーマンス・メトリック
この項では、Oracle HTTP Serverのパフォーマンス分析に役立つ、最もよく使用されるメトリックを示します。
Oracle HTTP Serverのメトリック
Oracle HTTP Server Metricsフォルダには、Oracle HTTP Serverのパフォーマンス・メトリック・オプションが含まれます。次の表に、Oracle HTTP Server Metricsフォルダに含まれるメトリックを示します。
要素 | 説明 |
---|---|
CPU使用率 |
CPU使用率とアイドル時間 |
メモリー使用量 |
メモリー使用量と空きメモリー(MB単位) |
プロセス |
ビジーおよびアイドル・プロセス・メトリック |
リクエスト・スループット |
リクエスト/秒単位で測定されたリクエスト・スループット |
リクエスト処理時間 |
リクエスト処理時間(秒単位) |
レスポンス・データ・スループット |
レスポンス・データ・スループット(KB/秒単位) |
レスポンス・データ処理 |
レスポンス・データ処理(KB/レスポンス単位) |
アクティブなHTTP接続 |
アクティブなHTTP接続の数 |
接続期間 |
接続時間の長さ |
HTTPエラー |
HTTP 4xxおよび5xxエラーの数 |
Oracle HTTP Server仮想ホスト・メトリック
Oracle HTTP Server Virtual Host Metricsフォルダには、仮想ホスト(アクセス・ポイントとも呼ばれる)のパフォーマンス・メトリック・オプションが含まれます。次の表に、Oracle HTTP Server Virtual Host Metricsフォルダに含まれるメトリックを示します。
要素 | 説明 |
---|---|
仮想ホストに対するリクエスト・スループット |
各仮想ホストに対する1秒当たりのリクエストの数 |
仮想ホストに対するリクエスト処理時間 |
各仮想ホストで1つのリクエストを処理する時間 |
仮想ホストに対するレスポンス・データ・スループット |
各仮想ホストで送信されたデータの量 |
仮想ホストに対して処理されたレスポンス・データ |
各仮想ホストで処理されたデータの量 |
Oracle HTTP Serverモジュールのメトリック
Oracle HTTP Server Module Metricsフォルダには、モジュールのパフォーマンス・メトリック・オプションが含まれます。次の表に、Oracle HTTP Server Module Metricsフォルダに含まれるメトリックを示します。
要素 | 説明 |
---|---|
リクエスト・ハンドリング・スループット |
モジュールのリクエスト・ハンドリング・スループット(リクエスト/秒単位) |
リクエスト・ハンドリング時間 |
モジュールのリクエスト・ハンドリング時間(秒単位) |
モジュール・メトリック |
モジュールと、各モジュールのアクティブ・リクエスト、スループットおよび時間 |
親トピック: サーバーのパフォーマンスのモニタリング
パフォーマンス・メトリックの表示
Oracle HTTP ServerおよびOracle WebLogic Serverプロキシ・プラグイン・モジュールのパフォーマンス・メトリックは、Fusion Middleware Controlを使用するか、適切なWLSTコマンドを発行して表示できます。サーバーのパフォーマンスをモニタリングおよび分析するには、パフォーマンス・メトリックを表示します。
次のいずれかの手順を使用して、Oracle HTTP ServerおよびOracle WebLogic Serverプロキシ・プラグイン・モジュールのパフォーマンス・メトリックを参照できます。
Fusion Middleware Controlを使用したサーバー・メトリックの表示
メトリックは、Fusion Middleware ControlのOracle HTTP Serverホーム・メニューから表示できます。
親トピック: パフォーマンス・メトリックの表示
WLSTを使用したサーバー・メトリックの表示
コマンド行からインスタンスのメトリックの取得と表示を行うには、接続して、適切なWLSTコマンドを発行する必要があります。これらのコマンドを使用して、次のような機能のいずれかを実行できます。
-
メトリック表名の表示
-
メトリック表の表示
-
メトリックのダンプ
ノート:
WLSTの使用方法の詳細は、『WebLogic Scripting Toolの理解』を参照してください。
この手順を実行してみる前に、次の内容を実行します。
コマンド行からサーバー・メトリックにアクセスを試みる前に、次の内容を確認してください。
-
ドメインが存在し、メトリックを表示するインスタンスが存在すること。
-
インスタンスが実行中であること。
-
インスタンスのマシン上でノード・マネージャが実行中であること。
管理サーバーが動作中でも構いませんが、必要条件ではありません。
WLSTを使用してメトリックを表示するには:
ノート:
管理対象ドメインとスタンドアロン・ドメインのいずれの種類においても、同一のマシンまたはサーバーに対してリモートのマシンのいずれからコマンドを実行したかによらず、次の手順が機能します。
親トピック: パフォーマンス・メトリックの表示
Oracle HTTP Serverのパフォーマンス・ディレクティブ
Oracle HTTP Serverのパフォーマンスは、構成ファイルで指定されたディレクティブによって管理されます。Oracle HTTP Serverのパフォーマンス関連のディレクティブをチューニングするには、Fusion Middleware Controlを使用します。
次の項では、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タイプの値を変更する方法について説明します
スタンドアロン・ドメインのMPMタイプの値の変更
スタンドアロン・ドメインのOracle HTTP Serverインスタンス用のMPMタイプの値を変更するには、次のステップに従います。
親トピック: パフォーマンス・ディレクティブの理解
WebLogic Server管理対象ドメインのMPMタイプの値の変更
Oracle WebLogic ServerドメインのOracle HTTP Serverインスタンス用のMPMタイプの値を変更するには、次のステップに従います。
ノート:
次のステップでは、ドメインの管理サーバーおよびノード・マネージャがすでに稼働していると仮定します。
親トピック: パフォーマンス・ディレクティブの理解
Fusion Middleware Controlを使用したパフォーマンス・ディレクティブの構成
この項での説明および推奨は、スレッドを使用するWorker MPM、Event MPMまたはWinNT MPMに基づいています。Prefork MPMを使用している場合、次に示すスレッド関連ディレクティブは適用不可です。
Fusion Middleware Controlの「パフォーマンス・ディレクティブ」ページでは、Oracle HTTP Serverのパフォーマンス関連ディレクティブをチューニングできます。
パフォーマンス・ディレクティブの管理は、リクエスト構成、接続構成およびプロセス構成という領域で構成されます。次の各項では、これらの構成を設定する方法について説明します。
Fusion Middleware Controlを使用したリクエスト構成の設定
Fusion Middleware Controlを使用してOracle HTTP Serverのリクエスト構成を指定するには、次の手順を実行します。
リクエスト構成設定が保存され、「パフォーマンス・ディレクティブ」ページに表示されます。
Fusion Middleware Controlを使用した接続構成の設定
Fusion Middleware Controlを使用して接続構成を指定するには、次の手順を実行します。
接続構成設定が保存され、「パフォーマンス・ディレクティブ」ページに表示されます。
Fusion Middleware Controlを使用したプロセス構成の設定
子プロセスと構成設定は、サーバーによるリクエスト処理能力に影響します。状況によっては、サーバーの良好なパフォーマンスを維持するために、リクエスト数を増加または減少させるように設定を変更する必要があります。
UNIXの場合、子サーバー・プロセスのデフォルト数は3です。Microsoft Windowsの場合、リクエストを処理するためのスレッドのデフォルト数は150です。
Fusion Middleware Controlを使用してプロセス構成を指定するには、次の手順を実行します。
プロセス構成設定が保存され、「パフォーマンス・ディレクティブ」ページに表示されます。
UNIXのプロセス・セキュリティの理解
UNIXにインストールするときに、Oracle HTTP Serverを特権ポートにバインドできるようにするには、特別な構成が必要です。
デフォルトでは、Oracle HTTP Serverは、UNIXでの予約済の範囲内にあるポート(通常1024未満)にバインドできません。Oracle HTTP Serverが、UNIXでの予約済の範囲内にあるポート(ポート80とポート443など)でリスニングできるようにするには、特権ポートでのOracle HTTP Serverインスタンスの起動(UNIXのみ)を参照してください。
親トピック: サーバー・プロセスの管理およびモニタリング