キャッシュ状態の確認

Web サイトにあるコンテンツのキャッシュ状態を確認することは、トラブルシューティングをする際に役立ちます。コントロールパネルまたは cURL コマンド (サポートされている多くのプロトコルの一つを使用して、サーバーとの間で URL 構文を使用してデータを転送するためのオープンソースのコマンドラインツール) を使用して、Fastly のキャッシュノードにキャッシュされたオブジェクトをチェックし、提供された情報を使用してオブジェクトのステータス、レスポンスタイム、コンテンツハッシュを調べることができます。

Fastly コントロールパネルの利用方法

以下の手順に従って、Fastly コントロールパネル を使用してオブジェクトのキャッシュ状態を確認します。

  1. Fastly コントロールパネルにログインし、Configure のリンクをクリックします。
  2. [キャッシュの確認] ボタンをクリックします。[キャッシュの確認] ウィンドウが表示されます。

    [キャッシュの確認] ウィンドウ

  3. Full URL パス欄に、オブジェクトへのフルパスを入力します (例 : http://www.example.com/object.html)。
  4. Check Cache ボタンをクリックします。キャッシュの確認 画面に結果が表示されます。

    キャッシュの確認の結果

この情報は、Fastly のキャッシュサーバーに保持しているコンテンツを検証するために、利用することができます。もしコンテンツのハッシュ値が各キャッシュサーバーで違っている場合、一般的にキャッシュに問題があることを示しています。

cURL コマンドの利用方法

リクエストが Fastly ネットワークにキャッシュされているかどうかを確認する最も簡単な方法は、Fastly コントロールパネルのキャッシュの確認機能を使用することですが、コマンドラインの利用を希望される場合は、デバッグ目的で 2つの cURL コマンドのいずれかを使用することもできます。

シンプルな cURL コマンドの使用

以下の cURL コマンドは、対象となるコンテンツのリクエストとレスポンスヘッダを表示します。

1
curl -svo /dev/null www.example.com/index.html

www.example.com/index.html の箇所は、テストを行いたいオブジェクトのパスに置き換えてください。

例えば、使用するcurl -svo /dev/null www.example.comと次のような部分が出力されます。

1
2
3
4
5
6
7
8
[...]

< Age: 142
< X-Served-By: cache-jfk1041-JFK, cache-ord1720-ORD
< X-Cache: HIT, HIT
< X-Cache-Hits: 1, 7

[...]

この出力は、キャッシュ内のオブジェクトの現在の経過時間を含みます。また X-Served-By に2つのノードの情報が表示されていることから、オリジンシールドが有効化されていることが分かります。最も興味深いのは X-Cache ヘッダーです。適切にキャッシュされたオブジェクトは、X-Cache: HITX-Cache: HIT, HITX-Cache: HIT, MISS、またはX-Cache: MISS, HITの値を表示します。

Fastly-Debug ヘッダーを伴う cURL コマンドの利用

Fastly-Debugヘッダーを利用するとシンプルな cURL コマンドでは取り除かれるデバッグ情報を確認することができます。

curl -svo /dev/null -H "Fastly-Debug:1" www.example.com/index.html

www.example.com/index.html の箇所は、テストを行いたいオブジェクトのパスに置き換えてください。

例えば、オプションのオリジンシールドを使用し、TTL を86400 (24時間) に設定した場合、このSurrogate-Controlコマンドcurl -svo /dev/null -H "Fastly-Debug:1" www.example.comでは次のような出力が得られます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[...]

< Surrogate-Control: max-age=86400
< Surrogate-Key: articles articles/1 articles/2

[...]
< Age: 403
< Fastly-Debug-Path: (D cache-ord1722-ORD 1470672957) (F cache-ord1743-ORD 1470672629) (D cache-jfk1041-JFK 1470672629) (F cache-jfk1030-JFK 1470672554)
< Fastly-Debug-TTL: (H cache-ord1722-ORD 85997.246 0.000 403) (H cache-jfk1041-JFK - - 75)
< X-Served-By: cache-jfk1041-JFK, cache-ord1722-ORD
< X-Cache: HIT, HIT
< X-Cache-Hits: 1, 6

[...]

サロゲートキーが存在するため、Fastly-Debugヘッダーではそれを公開しています。シンプルな cURL コマンドと同様にキャッシュされてからの経過時間も表示されています。それらの情報に加え、Fastly-Debug ヘッダーは以下のようなデバッグ情報も表示します。

Fastly-Debug ヘッダーによって表示される情報

Fastly-Debug Path にはどのキャッシュサーバーがフェッチや配信を行ったかや、オブジェクトの TTL 情報が記録されます。シールディングを利用している場合はエッジ POP の情報が先に記録され、続いてシールド POP の情報が記録されます。

  • D は、エッジまたはシールドにある名前のキャッシュを表す vcl_deliver を実行しました。
  • F は、エッジまたはシールドにある名前のキャッシュを表す vcl_fetch を実行しました。
  • 各サーバー名の横に表示されている数字は、タイムスタンプを表示しています。

オリジンシールドを有効にしている場合、このヘッダーでは、通常 4つのキャッシュサーバーが表示されます。稀なケースとして、あるキャッシュサーバーが当該オブジェクトのクラスタ内のエッジとシールドの両方として存在する場合、2つまたは3つのキャッシュが表示されることがあります。

Fastly-Debug-TTL では、 HIT または MISS の情報を表示します。

  • H は、HIT を意味し、キャッシュサーバーに当該オブジェクトが存在したことを示しています。
  • M は、MISS を意味し、リクエストしたときには、当該オブジェクトがキャッシュサーバーに存在していなかったことを示しています。

3つの数字の情報はそれぞれ以下の情報を含みます :

  • 1つ目の数字 オブジェクトの残存 TTL
  • 2つ目の数字 グレース TTL
  • 3つ目の数字 オブジェクトがキャッシュされてからの経過時間

上記の3つの情報を見るためには、数回リクエストを実行する必要がある可能性があります。当該クラスターノードにリクエストするか、もしくはすでに一時メモリーに当該コンテンツが存在しているキャッシュサーバーにリクエストした場合に表示されます。

X-Served-By では、当該リクエストに対応したオリジンシールドまたはエッジのキャッシュサーバーが表示されます。オリジンシールド POP が1番目に表示され、エッジ POP が2番目に表示されます。

X-Cache は、リクエストがデータセンターにとって HIT であるか MISS であるかを示します。

Back to Top