問題
Alibaba Cloud CDNによってWebサイトが高速化されると、コンテンツの配信が遅くなる場合があります。 多くの要因により、コンテンツ配信が遅くなる可能性があります。 このトピックでは、エラーのトラブルシューティング方法について説明します。
解決策
注:
Alibaba Cloudインスタンスの設定やデータの変更など、リスクの高い操作を実行する前に、インスタンスのディザスタリカバリ機能とフォールトトレランス機能を確認して、データのセキュリティを確保することを推奨します。
ECS (Elastic Compute Service) インスタンスやRDSインスタンスなどのインスタンスの設定またはデータを変更する前に、インスタンスのスナップショットを作成するか、バックアップを有効にすることを推奨します。 たとえば、RDSインスタンスのログバックアップ機能を有効にできます。
Alibaba Cloud管理コンソールで機密情報へのアクセス権限を付与した場合、またはユーザー名やパスワードなどの機密情報を送信した場合は、できるだけ早い機会に情報を変更することを推奨します。
Alibaba Cloud CDNによってWebサイトが高速化された後、コンテンツの配信が遅い場合は、次のコンテンツを参照して問題を解決できます。
トラブルシューティング
問題をトラブルシューティングする前に、Alibaba Cloud CDNの仕組みを理解する必要があります。 詳細については、「」をご参照ください。Alibaba Cloud CDNとは この情報は、問題の考えられる原因を特定して分析するのに役立ちます。 Alibaba Cloud CDNは、既存のネットワークにPOP (Point of presence) を追加し、オリジンサーバーから取得したリソースをユーザーに最も近いPOPにキャッシュします。 リソースが再度要求されると、Alibaba Cloud CDNはオリジンサーバーからリソースを取得するのではなく、キャッシュから直接リソースを返します。 これにより、オリジンリクエストを減らし、ページの読み込みを改善できます。 アクセス速度が遅いために考えられる原因を次の項目に示します。
ダウンストリーム帯域幅の不足やDNS構成エラーなど、クライアントでネットワークの問題が発生します。
クライアントとPOP間のネットワーク接続は不十分であり、アクセス遅延は大きい。
POPでエラーが発生し、応答速度が遅くなります。
リソースのサイズは大きく、リソースがダウンロードされるのにより長い期間を必要とする。
POPと配信元サーバー間のネットワーク接続が不十分です。
オリジンサーバーの応答速度が遅い。
症状に注意して、その後のトラブルシューティングを通知します。
すべてのユーザー、個々のユーザー、特定の地域のユーザー、または特定のインターネットサービスプロバイダ (ISP) のユーザーに対してコンテンツ配信が遅いかどうかを判断します。 Alibaba Cloudは、Application Real-Time Monitoring Service (ARMS) やCloudMonitorなどのサービスを提供しています。 特定のリージョンまたはISPを対象とした、より正確なトラブルシューティングにサービスを使用できます。
コンテンツ配信が少数のユーザに対してのみ遅い場合、これらのユーザのネットワークは異常である可能性がある。
問題のあるユーザーが集中管理されているかどうかを判断します。 たとえば、コンテンツ配信は、特定の都市の多数のChina Mobileユーザーにとっては遅いが、China UnicomまたはChina Telecomユーザーにとっては通常の場合があります。 この場合、市内のISPのネットワークが異常である可能性があります。 都市の検出ツールを使用して、ネットワークの状態を確認できます。
すべてのユーザーに対してコンテンツの配信が遅い場合、オリジンサーバーの応答または構成が問題になる可能性があります。 すべての地域のすべてのPOPまたはネットワークが同時に問題を抱えている可能性はほとんどありません。 たとえば、アクセラレーションリージョンが正しく選択されていないか、またはキャッシュできないリソースに対する動的リクエストまたはリクエストに対してオリジンサーバーがゆっくり応答するかどうかを確認できます。
応答が遅いまたは異常なリソースがPOPにキャッシュされているかどうかを確認します。
リクエストがキャッシュにヒットした場合、キャッシュされたリソースはクライアントに返され、オリジンサーバーから取得されません。 この場合、スローコンテンツ配信は配信元サーバーとは関係ありません。
リクエストがキャッシュにヒットしない場合は、クライアントとPOP間のルートが原因であるか、配信元サーバーが原因であるかを確認する必要があります。
Observeインジケーター
Alibaba Cloud CDNを使用してコンテンツ配信を高速化すると、一般的なインジケーターに加えて、シナリオ固有のインジケーターを取得できます。 これらの指標を参照すると、Alibaba Cloud CDNがコンテンツ配信を高速化し、サービスにどのように適用されるかを知ることができます。 これにより、調整やビジネス上の意思決定が容易になります。 Alibaba Cloud CDNインジケーターの詳細については、「パフォーマンスインジケーター」をご参照ください。
情報の収集
完全なHTTPまたはHTTPSリクエストプロセスには、DNS解決、TCP接続、SSLハンドシェイク (HTTPリクエストの場合) 、クライアントリクエスト送信、およびサーバー応答が含まれます。 プロセスを理解することで、問題の分析を改善できます。 したがって、クライアントに関する次の情報を収集する必要があります。
クライアントのネットワーク状態とPOPのIPアドレスの収集
pingコマンドを実行して、高速化ドメイン名に接続します。 ドメイン名がAlibaba Cloud CDNに正しく解決されているかどうか、クライアントとPOP間のネットワークにアクセスできるかどうか、およびネットワークレイテンシが高いかどうかを確認します。 高速化ドメイン名に接続できない場合は、ネットワークパスを診断する必要があります。 詳細については、「pingコマンドの実行後にパケット損失または接続障害が発生したときのネットワークパスのテスト」をご参照ください。
クライアントのIPアドレスとローカルDNSサーバーの収集
POPルーティングポリシーは、クライアントのローカルDNSサーバーに基づいています。 したがって、ローカルDNSサーバーが正しく構成されていることを確認する必要があります。 https://cdn.dns-detect.alicdn.com/ にアクセスして、クライアントのIPアドレスとDNSサーバーを取得できます。
アクセス速度が遅いURLの特定
ブラウザで開発者モードをオンにし、[ネットワーク] タブをクリックしてURLを入力し、ブラウザから送信されたすべてのHTTPリクエストを [ネットワーク] タブで表示します。 [時間] 列をクリックして結果を時間で並べ替え、応答速度が遅いリソースを表示します。 [ドメイン] 列で、これらのリソースのURLを見つけます。
ほとんどの場合、Webサイトが大量のリソースをロードする場合、一部のリソースはAlibaba Cloud CDNによって高速化されない場合があります。 Alibaba Cloud CDNによって高速化されていないリソースのアクセス速度は遅く、Alibaba Cloud CDNによって高速化されたリソースのアクセス速度は速いです。 ただし、加速されていないリソースの読み込みは、Webサイト全体の応答速度を遅くする可能性があります。 したがって、時間ごとにURLを並べ替えて、アクセス速度が遅いURLを特定できます。
HTTPリクエストヘッダーとレスポンスヘッダーの収集
[ネットワーク] タブで、アクセス速度が遅いリソースを見つけ、[名前] 列の値をクリックします。 [ヘッダー] タブで、リソースのリクエストの [全般] 、[応答ヘッダー] 、および [要求ヘッダー] の情報を表示できます。 リクエストヘッダーとレスポンスヘッダーを使用すると、リクエストが静的リクエストであるかどうか、およびキャッシュにヒットするかどうかを判断できます。
携帯電話の4Gネットワーク経由でリソースにアクセスし、応答が遅い場合は、携帯電話でパケットをキャプチャして情報を取得する必要があります。 この操作は、通常のユーザにとっては困難であり得る。 代わりに、携帯電話の個人用ホットスポットをオンにし、PCからホットスポットに接続し、PC上の情報を収集できます。
HTTPリクエストのタイミング情報の収集
[タイミング] タブで、リソース要求プロセスの各部分に費やされた時間に関する情報を表示します。
一般的なケース
Alibaba Cloud CDNの仕組みとHTTPリクエストプロセスを理解した後、症状に基づいて予備分析を実行できます。 次に、クライアントで収集された情報を使用して、問題のトラブルシューティングまたは特定できます。 次のセクションでは、いくつかの一般的なケースについて説明します。
ケース1: クライアントとPOP間のネットワーク品質が悪い
クライアントはpingコマンドを使用して、高速化ドメイン名に接続します。 pingコマンド画面には、ネットワークのレイテンシが高く、パケット損失が発生していることが表示されます。 この場合、クライアントのIPアドレスとDNSサーバーアドレス、pingコマンドスクリーンショット、およびMy Traceroute (MTR) スクリーンショットを収集する必要があります。 この場合、クライアントのIPアドレスとDNSサーバーアドレス、pingコマンドスクリーンショット、およびMy Traceroute (MTR) スクリーンショットを収集する必要があります。 この場合の問題は、以下の理由によって引き起こされる可能性があります。
無効なアクセラレーションリージョン
中国本土のユーザは、中国本土の外部のPOPに割り当てられ、または中国本土の外部のユーザは、中国本土のPOPに割り当てられる。 シナリオ
この場合、アクセラレーションリージョンをグローバルに設定することを推奨します。
アクセラレーションリージョンを中国本土のみに設定した場合、中国本土以外のユーザーからのリクエストも中国本土のPOPにリダイレクトされます。
アクセラレーションリージョンをGlobal (中国本土を除く) に設定した場合、中国本土のユーザーからのリクエストでも、中国本土以外のPOPにリダイレクトされます。
不適切なクライアントDNS設定
ユーザーは、対応するISPと場所のDNSサーバーを使用するように変更する必要があります。
China Mobile (Guangdong) ユーザーがChina UnicomのDNSサーバーを使用する場合、ユーザーからのリクエストはChina UnicomのPOPにリダイレクトされ、長距離ルーティングはネットワークリンクを拡張します。
China Mobile (Guangdong) のユーザーがChina Mobile (Harbin) のDNSサーバーを使用する場合、ユーザーからの要求はChina Mobile (Harbin) のPOPにリダイレクトされ、長距離ルーティングはネットワークリンクを拡張します。
アクセラレーション領域とDNSサーバーが正しい場合、ユーザーは適切なPOPに割り当てられますが、ネットワークの品質はまだ悪いです。 次に、さらなる診断のためにtracerouteとMTR情報を収集する必要があります。
ケース2: 低いキャッシュヒット率または頻繁なオリジンフェッチ
Alibaba Cloud CDNは、クライアントに最も近いPOPに静的リソースをキャッシュすることで、静的リソースの配信を高速化します。 ユーザーがリソースを要求すると、POPはキャッシュされたリソースをユーザーに返します。 これにより、長いリンクを介したオリジンフェッチが防止されます。 キャッシュヒット率が低いと、オリジンサーバーの作業負荷が増加し、静的リソースのアクセス効率が低下します。 したがって、キャッシュヒット率はユーザーエクスペリエンスに影響します。 高いキャッシュヒット率を確保することが重要である。 キャッシュヒット率は、低ヒット率に寄与する原因に基づいて最適化できます。 詳細については、「Alibaba Cloud CDNのキャッシュヒット率の向上」をご参照ください。 キャッシュがヒットしたかどうかは、レスポンスのX-cacheヘッダーに基づいて判断できます。
X-Cache: このフィールドの値がMISSの場合、キャッシュが欠落し、リクエストがオリジンサーバーにリダイレクトされます。 このフィールドの値がHITの場合、キャッシュはヒットし、キャッシュされたリソースが返されます。
X-Swift-CacheTime: POPにキャッシュされているリソースの有効期限 (TTL) 値を指定します。 値が0の場合、リソースをキャッシュできません。
低いキャッシュヒット率または頻繁なオリジンフェッチのためのソリューション
高速化されたリソースへの最初のアクセスは、オリジンサーバーからのリソースへの直接アクセスよりも遅くなります。これは、リソースが最初のアクセスのためにPOPにキャッシュされておらず、オリジンサーバーから取得する必要があるためです。 この場合、URLベースのプリフェッチ機能を使用して、オリジンサーバーからPOPにコンテンツをプリフェッチすることを推奨します。 次に、ユーザが最初にプリフェッチされたコンテンツにアクセスすると、キャッシュがヒットする。 これにより、コンテンツの読み込みが加速されます。 詳細については、「リソースの削除とプリフェッチ」をご参照ください。
リソースへのアクセス頻度が低い場合、Alibaba Cloud CDNはこれらのリソースに対して少数のリクエストしか受信せず、キャッシュにヒットすることはありません。 POPはすべてのAlibaba Cloud CDNユーザーによって共有されます。 Alibaba Cloud CDNのキャッシュルールでは、POP上のリソースの最大有効期間 (TTL) を指定します。 Alibaba Cloud CDN高速化ドメイン名のトラフィックが少ない場合、有効期限が切れる前にリソースがPOPのキャッシュから削除される可能性があります。最も人気のないキャッシュされたリソースは、キャッシュ内で最初に古いものです。 人気は、POP上でリソースがアクセスされる頻度によって示される。 リソースの人気が低い場合、リソースは期限切れになる前に削除されてもよい。
不適切なキャッシュTTLが設定されています。 頻繁なオリジンフェッチを含むシナリオ:
Alibaba Cloud CDNでキャッシュルールを設定せず、静的ファイルのレスポンスにETagまたはLast-modifiedヘッダーが含まれていない場合、静的ファイルをPOPにキャッシュすることはできません。 この問題を解決するには、オリジンサーバーでレスポンスヘッダーを設定するか、Alibaba Cloud CDNでキャッシュルールを設定する必要があります。 詳細については、「キャッシュ設定」をご参照ください。
Alibaba Cloud CDNでキャッシュルールを設定しない場合、デフォルトのキャッシュポリシーが使用されます。 最大キャッシュTTLは3,600秒です。 これにより、キャッシュされたリソースの有効期限が切れた後、オリジンフェッチが頻繁に発生します。 ビジネス要件に基づいて適切なキャッシュTTLを設定することを推奨します。 詳細については、「デフォルトのキャッシュルールとキャッシュルールの優先度」をご参照ください。
キャッシュ-オリジンの制御ディレクティブの優先度が高くなります。 キャッシュルールを設定しても、オリジンレスポンスにキャッシュを許可しないcache-Controlディレクティブが含まれている限り、Alibaba Cloud CDNはリソースをキャッシュしません。 オリジンサーバーのキャッシュルールにmaxage=0、max-age=0、no-cache、no-store、private、Pragma: no-cacheのいずれかのルールが存在する場合、Alibaba Cloud CDNはリソースをキャッシュしません。 この場合、オリジンサーバーのルールを変更する必要があります。 値をPublicに変更すると、キャッシュが可能になります。 詳細については、「NGINXキャッシュポリシーの設定」および「Apacheキャッシュポリシーの設定」をご参照ください。
変数パラメータを含むURL リソースにアクセスするためのURLは、可変パラメータを含む。 クライアントが異なるURLを使用してAlibaba Cloud CDNにアクセスする場合、URLがPOPにキャッシュされている同じファイルを指している場合でも、Alibaba Cloud CDNは2つの異なるリクエストが開始されたと見なし、リクエストをオリジンサーバーにリダイレクトしてファイルを取得します。 この場合、パラメーターフィルター機能を有効にすることを推奨します。 詳細については、「パラメーターの無視」をご参照ください。
大きなファイルの範囲オリジンフェッチ 大きなファイルをキャッシュする場合は、範囲オリジンフェッチ機能を有効にすることを推奨します。 詳細については、「レンジオリジンフェッチ」をご参照ください。
ケース3: 遅い動的要求
クライアントが動的リソースにアクセスする場合、すべての要求がオリジンサーバーに対して行われ、リソースが取得されてから、リソースがクライアントに返されます。 このシナリオでは、Alibaba Cloud CDNはリアルタイムで変化する動的コンテンツをキャッシュできません。 したがって、Alibaba Cloud CDNは動的コンテンツの高速化には適していません。 POPは、動的コンテンツの要求をオリジンサーバーにリダイレクトします。 したがって、動的コンテンツの配信は加速されない。 Webサイトまたはアプリに大量の動的コンテンツ (API操作など) が含まれている場合は、次のソリューションを使用できます。
静的リソースと動的リソースを分離します。 Alibaba Cloud CDNを使用して静的リソースを高速化します。 オリジンサーバーに直接解決された別のドメイン名に動的リクエストをリダイレクトします。
Dynamic Content Delivery Network (DCDN) を使用して、動的リクエストを高速化します。 詳細については、「」をご参照ください。DCDNとは何ですか? 注: DCDNは、ルート最適化や送信最適化など、Alibaba Cloudが提供する動的アクセラレーションテクノロジーを使用して、動的リクエストを高速化します。 これにより、オリジンサーバーからリソースをできるだけ早く取得できます。 DCDNはネットワーク層を最適化します。 オリジンサーバーの応答が遅い場合は、オリジンサーバーを最適化する必要があります。
ケース4: 配信元サーバーの応答が遅い
キャッシュされていないリソースおよび動的リクエストに対するリクエストは、オリジンサーバーにリダイレクトされます。 配信元サーバーの応答が遅い場合、全体的な応答速度は遅くなります。 この場合、ローカルドメイン名をオリジンサーバーにマッピングしたり、オリジンドメインの応答速度をテストしたりできます。 原因:
オリジンサーバーの処理パフォーマンスが制限されています。 たとえば、オリジンサーバーの帯域幅やCPUがボトルネックになったり、オリジンサーバーの処理速度が遅くなったりします。 この場合、オリジンサーバーを最適化できます。 パフォーマンスが悪い場合は、オリジンサーバーをスケールアウトする必要があります。
オリジンサーバーのネットワークが悪いか、オリジンサーバーにクロスボーダー接続が含まれています。 たとえば、ユーザーが中国本土のPOPからリソースを要求しても、オリジンサーバーが中国本土の外部にあるとします。 Alibaba Cloud CDNは、インターネット経由でオリジンサーバーからコンテンツを取得します。 したがって、Alibaba Cloud CDNがクロスボーダー接続を介してオリジンサーバーからコンテンツを取得する場合、コンテンツ取得が影響を受ける可能性があります。 これは、国境を越えた接続には、中国本土内外の異なるISPが関与し、国際インターネット出口を使用するためです。 この場合、Alibaba Cloud CDNとオリジンサーバーのネットワークは制御できず、Alibaba Cloud CDNの最適化の可能性は限られています。 中国本土からのリクエストには1つのオリジンサーバーを、中国本土以外からのリクエストには1つのオリジンサーバーを展開することを推奨します。
ケース5: Webサイトホームページの読み込みが遅い
クライアントが http://www.example.com/
にアクセスすると、ブラウザはホームページを要求します。 リクエストが成功すると、サーバーはHTMLコードをブラウザーに返します。 次に、ブラウザは、返されたHTMLコードに基づいて、画像、JavaScriptファイル、CSSファイルなどのリソースをコードに導入するように要求します。 ホームページが動的リソースまたはキャッシュする必要のないリソースである場合、Alibaba Cloud CDNは、ホームページのリクエストごとにオリジンサーバーからリソースを取得します。 オリジンサーバーからの応答が遅いと、ホームページの読み込みが遅くなります。 その結果、リクエストは長い間Pending状態のままになります。 キャッシュがヒットしたかどうかについては、「ケース2: 低キャッシュヒット率または頻繁なオリジンフェッチ」をご参照ください。
ホームページがキャッシュされておらず、読み込みに時間がかかるシナリオでは、ホームページのリクエストは長い間Pending状態のままです。 ホームページが最終的に読み込まれると、静的リソースがすばやく読み込まれます。
ケース6: 大きなリソースの読み込み
Webサイトに大量のリソースをロードする場合は、高速化ドメイン名のパフォーマンス最適化機能を設定できます。 詳細については、「パフォーマンス最適化の概要」をご参照ください。 インテリジェント圧縮は、text/html、text/xml、text/plain、text/css、application/javascript、application/x-javascript、application/rss + xml、text/javascript、image/tiff、image/svg + xml、application/json、およびapplication/xmltext。
ケース7: 特定地域の特定のISPのユーザによる低速アクセス
一部のシナリオでは、クライアントに共通の問題があります。 たとえば、特定の都市の多数のChina Mobileユーザーは、一定期間中にアクセスが遅いか異常であると報告する場合がありますが、China Unicomユーザーによるアクセスは正常です。 この問題は、地域内のISPまたは要求されたPOPのネットワークに関連している可能性があります。 ほとんどの場合、クライアントのping情報を収集し、クライアントとPOP間のネットワーク遅延を判断することで、この問題のトラブルシューティングを行うことができます。
さらに、要求されたIPアドレスをPOPにバインドしてテストすることもできます。 テスト方法は、オリジンサーバーのIPアドレスをPOPのIPアドレスに変更する必要があることを除いて、オリジンサーバーでのテストと似ています。 POPをバインドする前に、POPの応答速度が遅いかどうかを確認できます。 応答速度が遅い場合は、リクエストがキャッシュにヒットし、ロードされたリソースが大きすぎるかどうかを確認します。 次に、前述のケースに基づいて問題を分析します。 問題を特定できない場合は、チケットを起票してAlibaba Cloudに連絡してください。
適用範囲
Alibaba Cloud CDN
DCDN