この章では、Oracle Web Cache付属の診断機能について説明します。
この章の項目は次のとおりです。
Oracle Web Cacheでは、パフォーマンスと最適な構成設定を評価するための各種診断ツールを提供しています。次のようなツールがあります。
最もポピュラーなリクエストとキャッシュの内容のリストのみでなく、キャッシュにないリクエストも表示できます。次のタイプのリストが作成されます。
キャッシュが最後に開始された後にキャッシュが受信した最もポピュラーなリクエストのURLのリスト。
ポピュラー度の計算は、リクエスト回数とリクエスト時期の2つの要因を使用して行われます。キャッシュに格納されているオブジェクトのみ、キャッシュに格納されていないオブジェクトのみ、またはキャッシュが受信したすべてのリクエストを指定できます。第8.6項を参照してください。
キャッシュに格納されていないオブジェクトのリクエストURLのリスト。
このリストは、キャッシュ・ルールが正しいオブジェクトをキャッシュしているかどうかの確認に使用できます。第8.6項を参照してください。
エクスポート・ファイルに対する、オブジェクトのキャッシュされたURLまたはキャッシュされていないURLのリスト。
Oracle Web Cacheは、キャッシュの内容のリストをファイルに書き込むことができます。第8.7項を参照してください。
デフォルトで、Oracle Web Cacheは診断情報をServer
レスポンス・ヘッダー・フィールドに追加します。診断用に、この情報をテキスト文字列としてオブジェクトのHTMLレスポンス・ボディに表示すると便利です。有効な場合、文字列をオブジェクトのURLに追加し、レスポンス・ボディに埋め込まれた診断情報の文字列をブラウザに表示するのみです。
Web Cache Debug Info: diagnostic_information
HTMLレスポンスに「TRACE」の冗長レベルを持つイベント・ログ情報を表示する選択もできます。
また、Content-Type: text/html
レスポンス・ヘッダー・フィールドを持つページのHTMLコメント・タグ内に診断情報を設定することもできます。有効な場合、診断情報はHTMLコメント・タグに表示されます。
<!-- Web Cache Debug Info: diagnostic_information-->
Oracle Web Cacheにより、ブラウザに送信されるオブジェクトに対して、HTTPレスポンス・メッセージのServer
レスポンス・ヘッダー・フィールドに次の診断情報が追加されます。
Server: Oracle Fusion Middleware 11g (multiple_version_object_version_number) Server_header_from_origin_server Oracle-Web-Cache-11g/11.1.1.0.0 (diagnostic_information)
Server
レスポンス・ヘッダー・フィールドには、Oracle HTTP ServerおよびOracle Web Cacheの名前/値ペアを指定します。Oracle Web Cacheの情報には、バージョンおよび診断情報が含まれます。
diagnostic_information
は、次の形式をとります。
{ESI_processing_type}{cache_request_type}[;max-age=expiration_time[+removal_time];age=object_age;]{ecid=request_ID,sequence_number}
表8-1に、各診断フィールドの説明を示します。
表8-1 Serverの制御ディレクティブ
制御ディレクティブ | 説明 |
---|---|
|
|
|
|
|
オブジェクトが期限切れになるまでの時間(秒)を指定します。オプションとして、期限切れになったオブジェクトがキャッシュから削除されるまでの時間(秒)を指定することもできます。 |
|
オブジェクトがキャッシュ内に格納されてからの経過時間(秒)を表します。オブジェクトがキャッシュ不可の場合、 |
|
|
Server
レスポンス・ヘッダー情報により、リクエストがキャッシュまたはオリジナル・サーバーのどちらで処理されたのかがわかります。次に示すServer
フィールドの例では、オブジェクトがキャッシュ・ヒットであったことを表しています。
Server: Oracle Fusion Middleware 11g (11.1.1.0.0) Oracle-HTTP-Server Oracle-Web-Cache-11g/11.1.1.0.0 (TH;max-age=60+30;age=55;ecid=23248098121,0)
(TH;max-age=60+30;age=55;ecid=23248098121,0)
が診断情報です。
T
は、このページがESIで構成されていることを表します。
H
は、このリクエストがキャッシュ・ヒットになったことを表します。
max-age=60+30
は、このオブジェクトがキャッシュに格納されてから60秒後に期限切れとなり、期限切れになってから30秒後にキャッシュから削除されることを表しています。つまり、このオブジェクトはキャッシュに格納されてから、合計で90秒間存在することになります。
age=55
は、キャッシュに格納されてから55秒経過したことを表します。つまり、期限切れになるまで残り5秒、削除されるまで残り35秒ということになります。
ecid=23248098121,0
は、Oracle-ECID
リクエスト・ヘッダーのリクエストIDと順序番号を指定します。
Server
レスポンス・ヘッダーをアクセス・ログに表示するには、sc(Server)
フィールドを選択します。ユーザー定義のアクセス・ログの形式でsc(Server)
フィールドを設定する必要があります。
詳細は、次を参照してください。
一般統計を表示するには、「Webキャッシュ・メンバー」ページにナビゲートします。「Webキャッシュ・メンバー」ページで提供される統計の詳細は、第2.6.3項を参照してください。
特定のキャッシュ・インスタンスの詳細な統計も表示できます。
Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。
「Webキャッシュ」メニューから、「監視」→「パフォーマンス・サマリー」を選択します。
「パフォーマンス・サマリー」ページがパフォーマンス・メトリックとともに表示されます。
別のメトリックを表示するには、「メトリック・パレットの表示」をクリックしてメトリックのカテゴリを開きます。
次の図は、「メトリック・パレット」が表示された「パフォーマンス・サマリー」ページを示しています。
追加のメトリックを選択し、「パフォーマンス・サマリー」に追加します。
パフォーマンス・メトリックの定義、およびメトリックが範囲外のときに実行する必要があるアクションの情報を取得するには、メトリックの名前を右クリックし、コンテキスト・メニューの「ヘルプ」を選択します。
メトリックを監視した後、別のパフォーマンス・メトリックが必要な場合は、ブラウザで次のURLにアクセスします。
http://web_cache_hostname:stat_port
このURLによって表示される「Oracle Web Cache Internal Diagnosability Monitor」には、キャッシュ・ヒットとキャッシュ・ミスに関する追加情報が表示されます。統計監視ポートを確認する方法の詳細は、第2.11.1項を参照してください。
表8-2に、構成したルールの有効性を評価する場合の情報の参照先を示します。
最もポピュラーなリクエストを評価することにより、キャッシュ・ルールが正しいオブジェクトをキャッシュしているかどうか判断できる点については、第8.2項を参照してください。
最もポピュラーなリクエストのURLのリストを表示するには、次の手順を実行します。
Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。
「Webキャッシュ」メニューから、「監視」→「ポピュラーなリクエスト」を選択します。
「ポピュラーなリクエスト」ページが表示されます。
「ポピュラーなリクエストの表示」リストから、オプションを選択します。
すべて: キャッシュが受信したすべてのリクエストを表示します。
キャッシュされたポピュラーなリクエスト: キャッシュに格納されているリクエストのみを表示します。
キャッシュされていないポピュラーなリクエスト: キャッシュに格納されていないリクエストのみを表示します。
「ポピュラーなリクエストの数」に、表示するURLの最大数を入力します。
「実行」をクリックします。
キャッシュが最後に開始された後のリクエストのURLリストを含む表が表示されます。この表にはリクエストごとに次の列が含まれます。
サイト: リクエストされたサイト名が表示されます。
HTTPメソッド: リクエストで、GETメソッド、問合せ文字列を含むGETメソッドまたはPOST HTTPリクエスト・メソッドを使用しているかどうかが表示されます。
URL: オブジェクトのURLが表示されます。URLには、Cookieやセッションの情報などの追加情報が含まれることがあります。
POST本体: POST本体の内容が表示されます。
キャッシュ済ですか。: オブジェクトがキャッシュされているかどうかが表示されます。可能な値は次のとおりです。
はい: オブジェクトはキャッシュされています。
はい。ただし期限が切れています: オブジェクトはキャッシュされていますが、期限切れです(無効化および有効期限がパフォーマンスに与える影響を抑えるために、Oracle Web Cacheでは、オリジナル・サーバーがオブジェクトを更新できるようになるまで、一部のオブジェクトを無効な状態で表示します)。
はい。ただし検証が必要です: オブジェクトはキャッシュされていますが、キャッシュで処理するためにはオリジナル・サーバーによる検証が必要です。検証は、キャッシュされたオブジェクトの一意のバリデータを使用して、Oracle Web Cacheからオリジナル・サーバーへの単純な条件リクエストを介して行われます。
いいえ: オブジェクトはキャッシュされていません。
キャッシュの理由: オブジェクトがキャッシュされた理由またはキャッシュされなかった理由を示します。可能な値は次のとおりです。
ACLドキュメント: オブジェクトが、アクセス制御リスト(ACL)保護ページへのユーザー アクセスを許可するためのACLドキュメントであるため、キャッシュされたか、またはキャッシュされませんでした。
キャッシュ・ルールごと: キャッシュ・ルールに従ってキャッシュされました。または、キャッシュ・ルールに従ってキャッシュされませんでした。
ETagレスポンス・ヘッダーごと: ETagレスポンス・ヘッダーによってキャッシュされたか、またはキャッシュされませんでした。
HTTPヘッダーごと: HTTPヘッダーの情報によってキャッシュされたか、キャッシュされませんでした。
HTTPレスポンス・コードごと: HTTPレスポンス・コードによってキャッシュされたか、またはキャッシュされませんでした。通常、キャッシュ・ルールで明示的に許可することによって、200でないレスポンス・コードはキャッシュされず、200以外のレスポンスはキャッシュされます。
ESIタグの参照TTLごと: ESIタグで指定された参照TTL(TTLパラメータ)の値が0(ゼロ)以外であるため、キャッシュされたか、またはキャッシュされませんでした。
Surrogate-Controlレスポンス・ヘッダーごと: Surrogate-Controlレスポンス・ヘッダーの情報によってキャッシュされたか、またはキャッシュされませんでした。
X-Oracle-Cacheレスポンス・ヘッダーごと: X-Oracle-Cache
レスポンス・ヘッダーの情報によってキャッシュされたか、またはキャッシュされませんでした。
Cookieが一致しません: リクエストに存在しないCookieまたはリクエスト内の同じCookieとは異なる値を持つCookieがレスポンスに含まれているため、キャッシュされたか、またはキャッシュされませんでした。
ディレクティブまたはルールがありません: ディレクティブまたはルールに、オブジェクトのキャッシュが必要であることが記述されていないため、キャッシュされたか、またはキャッシュされませんでした。
GETメソッドまたはPOSTメソッドではありません: オブジェクトがGETメソッドまたはPOSTメソッドではなかったため、キャッシュされませんでした。
オブジェクトは大きすぎます: オブジェクトが、「リソース制限とタイムアウト」ページで指定された「単一のキャッシュ・オブジェクトの最大サイズ」より大きいため、キャッシュされませんでした。
POST本体が大きすぎます: POST本体がキャッシュするには大きすぎたため、キャッシュされたか、またはキャッシュされませんでした。
URLに問合せ文字列が含まれています: リクエストに問合せ文字列が含まれていますが、リクエストがどのキャッシュ・ルールにも一致しなかったため、キャッシュされたか、またはキャッシュされませんでした。
サイズ: リクエストされたオブジェクトのサイズが表示されます。サイズは、バイト、KBまたはMBで表されます。
圧縮済ですか。: オブジェクトが圧縮された理由、または圧縮されなかった理由が表示されます。
はい。キャッシュ・ルールごと: オブジェクトは、圧縮を有効または無効にしたキャッシュ・ルールに一致したため、圧縮されました。
はい。MIMEタイプごと: オブジェクトのMIMEコンテンツ・タイプによって圧縮されました。
いいえ。デフォルト設定ごと: サイトで圧縮は有効であり、ブラウザはGZIP圧縮レスポンスを使用できますが、一致するキャッシュ・ルールがなく、レスポンスのSurrogate-Control
レスポンス・ヘッダーにはcompress
コントロール・ヘッダーまたはMIMEタイプが含まれていません。
はい。Surrogate-Controlヘッダーごと: Surrogate-Control
レスポンス・ヘッダー内のcompress
制御ディレクティブの設定によって、圧縮されたか、または圧縮されませんでした。
はい。キャッシュ・ルールごと: オブジェクトは、圧縮を有効または無効にしたキャッシュ・ルールに一致したため、圧縮されたか、圧縮されませんでした。
いいえ。MIMEタイプごと: オブジェクトのMIMEコンテンツ・タイプによって圧縮されませんでした。
いいえ。デフォルト設定ごと: サイトで圧縮は有効であり、ブラウザはGZIP圧縮レスポンスを使用できますが、一致するキャッシュ・ルールがなく、レスポンスのSurrogate-Control
レスポンス・ヘッダーにはcompress
コントロール・ヘッダーまたはMIMEタイプが含まれていません。Oracle Web Cacheで圧縮が自動的に無効になる場合については、第1.2.5項を参照してください。
いいえ。Surrogate-Controlヘッダーごと: Surrogate-Control
レスポンス・ヘッダー内のcompress
制御ディレクティブの設定によって圧縮されませんでした。
いいえ。制限付きブラウザ・サポート: クライアントのブラウザにバグがあり、圧縮オブジェクトを受信できないため、圧縮されませんでした。
いいえ。Webキャッシュ処理が必要です: オブジェクトの解析とタグ処理が必要なため、圧縮されませんでした。たとえば、ESIタグを含むオブジェクトを処理してからでないと、キャッシュ・ヒットは発生しません。
いいえ。ブラウザ機能: クライアントのブラウザがOracle Web Cacheに対してGZIPで圧縮されたレスポンスを処理できることを指定しなかったため、圧縮されませんでした。したがって、Oracle Web Cacheでは、このブラウザに送信されるレスポンスは圧縮されません。
いいえ。サイトでは無効です: サイト全体で圧縮が無効になっていたため、圧縮されませんでした。サイトで圧縮を有効にする方法は、第2.11.3項を参照してください。
いいえ。オブジェクトが小さすぎます: オブジェクトは、圧縮することで効果が得られる23バイトより小さかったため、圧縮されませんでした。
いいえ。ルーティング専用モードです: webcache.xml
ファイル内でROUTINGONLY
属性がYES
に設定されているため、圧縮されませんでした。この属性の詳細は、第3.8項を参照してください。
キャッシュに現在格納されているすべてのオブジェクトのURLリストをwebache_contents.txt
というファイルに生成するには、次の手順を実行します。
Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。
「Webキャッシュ」メニューから、「監視」→「ポピュラーなリクエスト」を選択します。
「ポピュラーなリクエスト」ページが表示されます。
「ポピュラーなリクエストのフィルタ条件」リストから、オプションを選択します。
すべて: キャッシュが受信したすべてのリクエストを表示します。
キャッシュされたポピュラーなリクエスト: キャッシュに格納されているリクエストのみを表示します。
キャッシュされていないポピュラーなリクエスト: キャッシュに格納されていないリクエストのみを表示します。
「ポピュラーなリクエストの数」に、表示するURLの最大数を入力します。
「エクスポート・ファイル」をクリックします。
メッセージ・ダイアログで、「OK」をクリックしてコンテンツをエクスポートします。
次のディレクトリにあるwebcache_contents.txt
にURLのリストが書き込まれます。
(UNIX) ORACLE_INSTANCE/diagnostics/logs/WebCache/<webcache_name> (Windows) ORACLE_INSTANCE\diagnostics\logs\WebCache\<webcache_name>
リストを生成するたびに、Oracle Web Cacheは、データを既存のファイルへ追加します。データをファイルに追加した日付と、その後に現在キャッシュされているオブジェクトのURLがリストされます。次の例はwebcache_contents.txt
ファイルの抜粋です。
Cache Contents at Wed Oct 20 11:47:03 2008 www.company.com:80/images/lnav/lnav_products.gif www.company.com:80/images/rnav/rnav_red_line_1.gif www.company.com:80/images/bullets_and_symbols/blk_line_bullet_10.gif . . . Cache Contents at Wed Oct 25 13:01:24 2008 www.company.com:80/images/white_spacer_xp.gif www.company.com:80/images/white_spacer.gif www.company.com:80/images/miniappsnet.gif . . .
Oracle Web Cacheが診断情報をServer
レスポンス・ヘッダー・フィールドに追加、またはオブジェクトのHTMLレスポンス・ボディにテキスト文字列として追加する方法については、第8.3項を参照してください。
診断情報をServer
レスポンス・ヘッダー・フィールドまたはHTMLレスポンス・ボディに設定するには、次の手順を実行します。
Oracle Web Cache Managerのナビゲータ・フレームで、「Logging and Diagnostics」→「Diagnostics」を選択します。第2.7.2項を参照してください。
「Cache-Specific Page Body Diagnostics」表でキャッシュを選択し、HTMLレスポンス・ボディに診断情報を表示する場合は「Enable」を、診断情報の表示を無効にする場合は「Disable」をクリックします。
HTMLレスポンス・ボディに診断設定値を設定するには、次の手順を実行します。
「Global Page Body Diagnostics Configuration」表から、「Edit」をクリックします。
「Edit Global Page Body Diagnostics Configuration」ダイアログ・ボックスが表示されます。
「URL Flag」フィールドに、オブジェクトのURLに追加する文字列を入力します。
「Display Event Log Entries for Request」フィールドで、HTMLレスポンス・ボディに診断情報とTRACEイベント・ログのエントリを表示する場合は「Yes」を選択し、診断情報のみを表示する場合は「No」を選択します。
「Submit」をクリックします。
Server
レスポンス・ヘッダーの診断設定値を有効または無効にする場合は、「Global Server Header Diagnostics」表で、「Enable」または「Disable」をクリックします。
「Apply Changes」をクリックします。