トラブルシューティング

ウェブアクセラレータの運用中に発生するトラブルの解決方法について解説しています。

【必読】ファイルがキャッシュされているか確認したい

すべてのトラブルで、まずご利用のサイトがウェブアクセラレータで正常にキャッシュされているかを確認する必要があります。

  1. Google Chrome でキャッシュしたいページを開きます。
  2. Windows の場合は Ctrl+Shift+i 、Mac の場合は Command+Option+i を押します。
  3. Network (ネットワーク)のタブを選択します。
../../_images/webaccel-troubleshooting-01.png
  1. Ctrl+Shift+R でページを再読み込みします。
  2. ページが読み込まれたら、キャッシュされる想定のファイルを選択します。
../../_images/webaccel-troubleshooting-02.png
  1. 選択すると、下のようにヘッダ情報が表示されます。
../../_images/webaccel-troubleshooting-03.png
  1. 表示されたヘッダ情報から、ファイルのキャッシュ状況を以下のように確認できます。
  • ヘッダ情報内に x-cache: HIT と表示されている場合
    • ウェブアクセラレータに正常にキャッシュされています。
  • ヘッダ情報内に x-cache: MISS と表示されている場合
    • 何らかの原因で、ファイルがキャッシュできていません。
      5-6回再読み込みを繰り返しても x-cache: MISS と表示される場合は、次の「 ファイルがキャッシュされない 」項目をご確認ください。 (※キャッシュが作成されていない初回アクセス時は MISS と表示される場合があります。数回再読み込みの上で確認ください)
  • ヘッダ情報のどこにも x-cache が表示されていない場合

ファイルがキャッシュされない

本ページの ファイルがキャッシュされているか確認したい 項目を試した結果、 ファイルがキャッシュ配信されていない場合は、以下の可能性がございます。

DNSの設定が完了していない

本ページの「ファイルがキャッシュされているか確認したい」項目を試した結果、 x-cache ヘッダが表示されない 場合は、DNSの設定が完了していない可能性がございます。

独自ドメインでウェブアクセラレータをご利用いただく場合は、配信ドメインに対してCNAMEレコードもしくはALIASレコードを 設定いただく必要がございます。以下の設定を完了しているか、今一度ご確認ください。

キャッシュ期間設定が漏れている・設定が誤っている

本ページの「ファイルがキャッシュされているか確認したい」項目を試した結果、 x-cache: MISS と表示される 場合は、キャッシュ期間が正しく設定されていない可能性がございます。

キャッシュ配信を実施するためには、コントロールパネルにおいて「デフォルトのキャッシュ期間」を設定するか、 オリジンサーバ側で適切な Cache-Control ヘッダが設定される必要がございます。 以下の手順で、 Cache-Control ヘッダが設定されているかご確認ください。

  1. 本ページの ファイルがキャッシュされているか確認したい 手順で、キャッシュしたいファイルのヘッダ情報を表示
  2. x-cache: MISS ヘッダと同時に cache-control ヘッダが表示されているかを確認

注意

Cache-Control: s-maxage=xxxx, no-store のように、 Cache-Control ヘッダにキャッシュ期間指示と拒否指示の両方が含まれている場合は、 拒否指示が優先されます(キャッシュされません)。

キャッシュすべきではないファイルの場合(ECサイトのカート画面等)であれば正常ですが、 キャッシュさせたいファイルに対して拒否指示が含まれている場合は、オリジンサーバの設定を今一度ご確認ください。

注釈

キャッシュされないというお問い合わせの多くは、 Cache-Control: s-maxage=xxxx の未設定や記述間違いが原因です。

キャッシュヒット率の適正値が分からない

一概にはお答えできませんが、理想的な状態においては、キャッシュヒット率はほぼ100%となります。

例として Cache-Control: s-maxage=600 と設定したケースを想定します。

600秒(10分間)に1000万アクセスがあった場合、 オリジンサーバへ到達するキャッシュ取得は多くて2回程度ですので、 キャッシュヒット率は (1 - (2/1000万)) \* 100 = 99.99998% になります。

特に転送量課金されるオリジンサーバを利用している場合は、 極限までキャッシュヒット率を高めることで、 転送量を削減しコストを圧縮することが可能です。

転送容量で課金されないオリジンサーバでも、キャッシュヒット率の上昇はオリジンサーバの負荷低減につながります。 キャッシュヒット率を100%に近づけるチューニングが、大量アクセス時の安定運用に効果をもたらします。

キャッシュヒット率が上がらない

キャッシュのヒット率が上がらない原因はいくつか考えられます。

  1. キャッシュ期間を設定していない・設定が間違っている (キャッシュヒット率がゼロ)
  • キャッシュ配信を実施するには、コンテンツに対してキャッシュ期間を設定する必要があります。 本ページの ファイルがキャッシュされない をご確認ください。
  1. キャッシュ期間を設定しているファイルが少ない・キャッシュ拒否しているファイルが多数を占めている
  1. Varyサポート機能を利用している場合に、オリジン側でのVaryヘッダの指定が適切ではない
  • Varyサポート機能を利用してキャッシュヒット率が大幅に低下した場合は、Varyヘッダに User-Agent 等のユニーク度が高い値を指定している可能性が考えられます。
    【ウェブアクセラレータ】Varyサポート機能 の手順をご確認いただき、オリジンサーバでのVaryヘッダ指定を今一度見直しください。

上記設定が正常で、キャッシュヒット率が(ゼロではないものの)低いの場合は、キャッシュ期間の設定が適切でない可能性が考えられます。 本ページの 適切なキャッシュ期間の設定値が分からない をご確認いただき、キャッシュ期間の調整を行ってください。

適切なキャッシュ期間(s-maxage)が分からない

キャッシュ期間の設定は、個々のサイトやキャッシュするコンテンツにより異なりますので、お客様に合わせて調整する必要がございます。

適切なキャッシュ設定をするにあたり、ひとつの重要な指標として「コンテンツ更新の発生頻度」が挙げられます。 以下に具体的な例を記載いたしますので、ご参考の上でご調整ください。

Case: コンテンツの更新はほぼ発生しない、キャッシュ更新は1日1回程度でいい

Cache-Control: s-maxage=86400

この設定では、1日(86400秒)の間キャッシュが維持されます。

キャッシュが作成されてから1日間はオリジンサーバからファイルを転送する必要がなくなり、オリジンサーバの負荷を低減できます。 コンテンツ(ファイル)の更新がほとんど発生しない場合、このようにキャッシュ期間を長めに設定することで、ウェブアクセラレータの効果を最大化できます。

もし緊急でコンテンツを更新したい場合は、コントロールパネルのキャッシュ削除機能を用いるか、キャッシュ削除APIを利用することができます。

Case: 画像ファイルが自動生成されており、頻繁に更新されている

Cache-Control: s-maxage=600

この設定では、10分(600秒)の間キャッシュが維持されます。

ファイルのキャッシュが作成されてから10分間はオリジンサーバから転送する必要がなくなります。 アクセス数が多いサーバの場合、これで大きく負荷を減らせる可能性があります。

更新頻度に合わせて、キャッシュ期間はより短く(あるいは長く)調整する必要があります。

このように、キャッシュ期間の長期化とコンテンツ(ファイル)の素早いアップデートはトレードオフの関係にあります。 まずは10分(600秒)程度の短い設定で運用し、 コンテンツ更新で不自由が生じない範囲で できる限り長くしながら、設定値を模索する ことをおすすめします。

注釈

キャッシュ期間はできるだけ長く設定した方が効果的ですが、前述の通りファイル更新の反映が遅れる弊害があります。 しかし キャッシュ削除APIとコンテンツ更新を連動することで、このトレードオフを解消することができます!

CMSなどのファイル更新と連動し、API経由でウェブアクセラレータにキャッシュ削除をリクエストすることで、 自動的に古いキャッシュをクリアすることができます。 これにより、キャッシュ期間を長く設定していても、常に最新のファイルを配信することが可能です。

大規模システムでウェブアクセラレータのご利用をご検討されている場合は、キャッシュ削除APIのご利用をおすすめします。