ヘッダーをスキップ
Oracle Fusion Middleware Oracle Web Cache管理者ガイド
11g リリース1(11.1.1)
B56248-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

8 診断機能の使用方法

この章では、Oracle Web Cache付属の診断機能について説明します。

この章の項目は次のとおりです。

8.1 診断ソリューションの概要

Oracle Web Cacheでは、パフォーマンスと最適な構成設定を評価するための各種診断ツールを提供しています。次のようなツールがあります。

8.2 ポピュラーなリクエストとキャッシュの内容のリスト表示の概要

最もポピュラーなリクエストとキャッシュの内容のリストのみでなく、キャッシュにないリクエストも表示できます。次のタイプのリストが作成されます。

8.3 HTMLボディまたはServerレスポンス・ヘッダー・フィールドでの診断情報とイベント・ログ情報の表示の概要

デフォルトで、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の制御ディレクティブ

制御ディレクティブ 説明

ESI_processing_type

ESI_processing_typeは次のとおりです。

  • Tは、オブジェクトがESIテンプレートであることを表します。

  • Fは、オブジェクトがESIフラグメントであることを表します。

  • 空の場合は、レスポンスがESIの処理を必要としないことを表します。

cache_request_type

cache_request_typeは次のとおりです。

  • Hは、キャッシュ・ヒットを表します。

  • Sは、失効しているオブジェクトに対するキャッシュ・ヒットを表します。

  • Uは、失効しているオブジェクトに対するキャッシュの更新を表します。

  • Gは、削除のマークが付けられた後も、物理的にはまだキャッシュ内に存在しているオブジェクトに対するキャッシュの更新を表します。

  • Mは、キャッシュ・ミスを表します。

  • Nは、キャッシュ不可のドキュメントに対するキャッシュ・ミスを表します。

max-age="expiration_time[+removal_time]

オブジェクトが期限切れになるまでの時間(秒)を指定します。オプションとして、期限切れになったオブジェクトがキャッシュから削除されるまでの時間(秒)を指定することもできます。cache_request_typeNの場合、max_ageは表示されません。

age=object_age

オブジェクトがキャッシュ内に格納されてからの経過時間(秒)を表します。オブジェクトがキャッシュ不可の場合、ageは表示されません。

ecid=request_ID, sequence_number

Oracle-ECIDリクエスト・ヘッダーに指定したリクエストIDと順序番号を指定します。


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)が診断情報です。

Serverレスポンス・ヘッダーをアクセス・ログに表示するには、sc(Server)フィールドを選択します。ユーザー定義のアクセス・ログの形式でsc(Server)フィールドを設定する必要があります。

詳細は、次を参照してください。

8.4 一般統計および詳細な統計の表示

一般統計を表示するには、「Webキャッシュ・メンバー」ページにナビゲートします。「Webキャッシュ・メンバー」ページで提供される統計の詳細は、第2.6.3項を参照してください。

特定のキャッシュ・インスタンスの詳細な統計も表示できます。

  1. Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。

  2. Webキャッシュ」メニューから、「監視」→「パフォーマンス・サマリー」を選択します。

    「パフォーマンス・サマリー」ページがパフォーマンス・メトリックとともに表示されます。

  3. 別のメトリックを表示するには、「メトリック・パレットの表示」をクリックしてメトリックのカテゴリを開きます。

    次の図は、「メトリック・パレット」が表示された「パフォーマンス・サマリー」ページを示しています。

    perform.gifの説明が続きます
    図perform.gifの説明

  4. 追加のメトリックを選択し、「パフォーマンス・サマリー」に追加します。

    パフォーマンス・メトリックの定義、およびメトリックが範囲外のときに実行する必要があるアクションの情報を取得するには、メトリックの名前を右クリックし、コンテキスト・メニューの「ヘルプ」を選択します。

メトリックを監視した後、別のパフォーマンス・メトリックが必要な場合は、ブラウザで次のURLにアクセスします。

http://web_cache_hostname:stat_port

このURLによって表示される「Oracle Web Cache Internal Diagnosability Monitor」には、キャッシュ・ヒットとキャッシュ・ミスに関する追加情報が表示されます。統計監視ポートを確認する方法の詳細は、第2.11.1項を参照してください。

8.5 構成統計の表示

表8-2に、構成したルールの有効性を評価する場合の情報の参照先を示します。

表8-2 構成統計

統計のタイプ 関連項目

リクエスト・フィルタとルール

第4.13項


キャッシュ・ルール

第6.9項



8.6 ポピュラーなリクエストのリスト表示

最もポピュラーなリクエストを評価することにより、キャッシュ・ルールが正しいオブジェクトをキャッシュしているかどうか判断できる点については、第8.2項を参照してください。

最もポピュラーなリクエストのURLのリストを表示するには、次の手順を実行します。

  1. Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。

  2. Webキャッシュ」メニューから、「監視」→「ポピュラーなリクエスト」を選択します。

    「ポピュラーなリクエスト」ページが表示されます。

  3. ポピュラーなリクエストの表示」リストから、オプションを選択します。

    • すべて: キャッシュが受信したすべてのリクエストを表示します。

    • キャッシュされたポピュラーなリクエスト: キャッシュに格納されているリクエストのみを表示します。

    • キャッシュされていないポピュラーなリクエスト: キャッシュに格納されていないリクエストのみを表示します。

  4. ポピュラーなリクエストの数」に、表示するURLの最大数を入力します。

  5. 実行」をクリックします。

    キャッシュが最後に開始された後のリクエストの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項を参照してください。

8.7 ファイルへのキャッシュの内容のリスト出力

キャッシュに現在格納されているすべてのオブジェクトのURLリストをwebache_contents.txtというファイルに生成するには、次の手順を実行します。

  1. Fusion Middleware Controlで「Webキャッシュ・メンバー」ページにナビゲートします。第2.6.2項を参照してください。

  2. Webキャッシュ」メニューから、「監視」→「ポピュラーなリクエスト」を選択します。

    「ポピュラーなリクエスト」ページが表示されます。

  3. ポピュラーなリクエストのフィルタ条件」リストから、オプションを選択します。

    • すべて: キャッシュが受信したすべてのリクエストを表示します。

    • キャッシュされたポピュラーなリクエスト: キャッシュに格納されているリクエストのみを表示します。

    • キャッシュされていないポピュラーなリクエスト: キャッシュに格納されていないリクエストのみを表示します。

  4. ポピュラーなリクエストの数」に、表示するURLの最大数を入力します。

  5. エクスポート・ファイル」をクリックします。

  6. メッセージ・ダイアログで、「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
.
.
.

8.8 診断情報の表示場所の構成

Oracle Web Cacheが診断情報をServerレスポンス・ヘッダー・フィールドに追加、またはオブジェクトのHTMLレスポンス・ボディにテキスト文字列として追加する方法については、第8.3項を参照してください。

診断情報をServerレスポンス・ヘッダー・フィールドまたはHTMLレスポンス・ボディに設定するには、次の手順を実行します。

  1. Oracle Web Cache Managerのナビゲータ・フレームで、「Logging and Diagnostics」→「Diagnostics」を選択します。第2.7.2項を参照してください。

  2. Cache-Specific Page Body Diagnostics」表でキャッシュを選択し、HTMLレスポンス・ボディに診断情報を表示する場合は「Enable」を、診断情報の表示を無効にする場合は「Disable」をクリックします。

  3. HTMLレスポンス・ボディに診断設定値を設定するには、次の手順を実行します。

    1. Global Page Body Diagnostics Configuration」表から、「Edit」をクリックします。

      「Edit Global Page Body Diagnostics Configuration」ダイアログ・ボックスが表示されます。

    2. URL Flag」フィールドに、オブジェクトのURLに追加する文字列を入力します。

      デフォルトでは、文字列は+wcdebugに設定されています。

    3. Display Event Log Entries for Request」フィールドで、HTMLレスポンス・ボディに診断情報とTRACEイベント・ログのエントリを表示する場合は「Yes」を選択し、診断情報のみを表示する場合は「No」を選択します。

    4. Submit」をクリックします。

  4. Serverレスポンス・ヘッダーの診断設定値を有効または無効にする場合は、「Global Server Header Diagnostics」表で、「Enable」または「Disable」をクリックします。

  5. Apply Changes」をクリックします。