キャッシュヒット率が低いと、オリジンサーバーの負荷が増加し、帯域幅コストが上昇し、コンテンツ配信が遅くなります。このチュートリアルでは、Alibaba Cloud CDN (CDN) コンソールを使用して、低いキャッシュヒット率の原因を診断し、適切な最適化戦略を適用する方法を説明します。最終的には、高速化ドメイン名のキャッシュパフォーマンスを最大化するための体系的なアプローチを習得できます。
前提条件
開始する前に、次のことを確認してください。
CDN コンソールで少なくとも 1 つの高速化ドメイン名を追加し、有効化していること。
AliyunCDNFullAccessポリシーなど、CDN ドメイン設定を管理する権限があること。レスポンスヘッダーを変更する必要がある場合は、オリジンサーバーの設定にアクセスできること。
背景情報
CDN は、ポイントオブプレゼンス (POP) と呼ばれるエッジノードにコンテンツをキャッシュします。クライアントがキャッシュされたリソースをリクエストすると、POP はオリジンサーバーに接続せずに直接リソースを提供します。これにより、応答時間とオリジンの負荷が削減されます。キャッシュヒット率が低いということは、より多くのリクエストがオリジンに到達することを意味し、レイテンシーとコストが増加します。
CDN は 2 つのキャッシュヒット率メトリックを提供します。
バイトヒット率は、キャッシュから提供されたデータの割合を測定します。バイトヒット率が高いほど、オリジンからではなく POP から提供されるデータが多いことを意味します。
バイトヒット率 = (L1 POP によって提供されたトラフィック - back-to-origin トラフィック) / L1 POP によって提供されたトラフィック
説明バイトヒット率が低いほど back-to-origin トラフィックが多くなり、帯域幅コストとオリジンの負荷が増加します。したがって、バイトヒット率はキャッシュパフォーマンスを監視するための主要なメトリックです。
リクエストヒット率は、ファイルサイズに関係なく、キャッシュから提供されたリクエストの割合を測定します。
リクエストヒット率 = キャッシュヒットしたリクエスト / CDN への総リクエスト数
説明ほとんどのシナリオ、特に大容量ファイルに対して Range オリジンフェッチが有効になっている場合は、バイトヒット率を主要なメトリックとして使用します。リクエストヒット率は、ファイルサイズに関係なく、キャッシュから提供されるリクエストの数を理解するのに役立ちます。
キャッシュヒット率の表示
方法 1:コンソールの使用 (推奨)
キャッシュヒット率を一度だけすばやく確認するには、コンソールを使用します。CDN コンソールには、2 つのモニタリング機能を通じてバイトヒット率が表示されます。
リソースモニタリング — 30 日間などの長期間にわたるキャッシュヒット率の傾向を表示します。データは約 15 分の遅延で 5 分粒度で利用可能です。詳細については、「リソースモニタリング」をご参照ください。
リアルタイムモニタリング — 1 時間などの短期間にわたるリアルタイムのキャッシュヒット率を表示します。データは約 3 分の遅延で 1 分粒度で利用可能です。詳細については、「リアルタイムモニタリング」をご参照ください。
方法 2:API の利用
キャッシュヒットのモニタリングをダッシュボード、スクリプト、または自動アラートシステムに統合する必要がある場合は、API を使用します。
API オペレーション | 説明 |
高速化ドメイン名のバイトヒット率データを取得します。標準粒度 (5 分または 1 時間)。過去 90 日間のデータを照会します。 | |
高速化ドメイン名のリクエストヒット率データを取得します。標準粒度 (5 分または 1 時間)。過去 90 日間のデータを照会します。 | |
高速化ドメイン名のリアルタイムのバイトヒット率データを 1 分粒度で取得します。過去 7 日間のデータを照会します。 | |
高速化ドメイン名のリアルタイムのリクエストヒット率データを 1 分粒度で取得します。過去 7 日間のデータを照会します。 | |
高速化ドメイン名のログダウンロード URL を取得します。過去 90 日間のログを照会します。 |
キャッシュヒット率の向上
まず、CDN ログを確認して、ドメインのキャッシュミスの最も一般的な原因を特定します。次に、以下の表から対応する戦略を適用します。
戦略 | 要因とシナリオ | 設定方法 |
人気のあるリソースのプリフェッチ | 要因:大規模なイベントや新しいバージョンのリリースの前に、まだ POP にキャッシュされていないリソースがオリジンフェッチをトリガーし、キャッシュヒット率を低下させます。 | プリフェッチ機能を使用して、リソースを POP にプリウォームします。詳細については、「クイックスタート」をご参照ください。 |
適切なキャッシュ有効期間の設定 | 要因:CDN にキャッシュポリシーが設定されていない、または設定された TTL が短すぎます。すべてのユーザーリクエストがオリジンに到達するか、キャッシュされたリソースが頻繁に期限切れになります。 | |
キャッシュキーにおける URL パラメーターの無視 | 要因:同じリソースを指すクエリパラメーターが異なる URL が、個別のキャッシュエントリとオリジンフェッチをトリガーします。 | |
大容量ファイルに対する Range オリジンフェッチの設定 | 要因:ユーザーが大容量ファイル (インストーラーや動画など) の一部のみをダウンロードする場合、Range オリジンフェッチがないと、POP はオリジンからファイル全体をフェッチします。POP はユーザーに提供するよりも多くのデータをオリジンからダウンロードするため、バイトヒット率が低下します。 | |
オリジンの | 要因:オリジンサーバーが | 方法 1 (推奨):オリジンサーバーの設定を変更して、静的リソースのレスポンスから |
その他の最適化戦略 | 上記の戦略に加えて、CDN は特定のシナリオ向けに追加の最適化機能を提供します。 | 中央 302 リダイレクト、エッジ 302 リダイレクト、およびオリジンフェッチ集約は、Alibaba Cloud のアフターセールスエンジニアによって設定されます。これらの機能を有効にするには、サポートにお問い合わせください。 |
上記の表で説明されているキャッシュ設定の変更を元に戻すには、CDN コンソールの同じ設定ページに戻り、ルールを削除または無効にします。
ログでのキャッシュヒットステータスの表示
CDN リクエストログには、各リクエストのキャッシュヒットステータスが記録されます。
ログのキャッシュヒットステータスフィールドは、次のいずれかを示します。
HIT— リクエストは POP キャッシュから提供されました。MISS— リクエストは POP キャッシュから提供されず、オリジンからフェッチされました。
ヒットステータスは L1 POP のみを反映します。リクエストが L1 POP でキャッシュミスした場合でも、L2 POP のキャッシュにヒットした場合、ログには引き続き MISS と表示されます。
ログエントリの例:
[26/Jun/2019:10:38:19 +0800] 192.168.53.146 - 1542 "-" "GET http://example.aliyundoc.com/index.html" 200 191 2830 MISS "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://example.com/robot/)" "text/html"この例では、MISS ステータスは、リソースが L1 POP にキャッシュされていなかったことを示します。ログに MISS エントリの割合が高い場合は、キャッシュヒット率の向上セクションの戦略を参照して、原因を特定し対処してください。
また、DescribeCdnDomainLogs API 操作を呼び出して、アクセラレーションドメインのログダウンロード URL を取得することもできます。
最適化の検証
最適化戦略を適用した後、キャッシュヒット率が向上したことを確認します。
キャッシュが伝播するまで待ちます。キャッシュ設定の変更は通常 5 分以内に有効になります。キャッシュの TTL を延長した場合は、変更をすぐに適用するために古いキャッシュコンテンツをパージする必要がある場合があります。
キャッシュヒット率を確認します。CDN コンソールの [リアルタイムモニタリング] 機能を使用するか、
DescribeDomainRealTimeByteHitRateDataを呼び出して現在のバイトヒット率を確認します。結果を最適化前のベースラインと比較します。ログを確認します。最近のログエントリで
HITステータスのエントリの割合が増加していることを確認します。適切に最適化された CDN は、通常、静的コンテンツが多いワークロードで 80% 以上のバイトヒット率を達成します。