如何疑難排解並降低 CloudFront 中增加的延遲?

2 分的閱讀內容
0

我發現 Amazon CloudFront 的回應出現延遲增加的情形。我想找出原因並降低延遲。

簡短說明

若要疑難排解 CloudFront 的延遲問題,請先確定延遲是由下列哪些事件造成:

  • 請求在用戶端和 CloudFront 邊緣節點之間傳遞所需的時間。這包括網域名稱系統 (DNS) 查詢流程及 TCP 和 SSL/TLS 交涉所需的時間。
  • 請求在 CloudFront 與來源之間傳遞所需的時間。這包括原始 DNS 查詢流程、與來源的 TCP 和 SSL/TLS 交涉,以及來源處理和回應物件所需的時間。

然後,遵循疑難排解步驟,處理造成最多延遲的事件。

解決方法

識別造成 CloudFront 延遲的事件:

若要識別哪些事件造成 CloudFront 延遲,請執行下列其中一項作業:

  • 執行下列 cURL 命令:
curl -w "DNS_resolution: %{time_namelookup}| TCP_negotiation_time: %{time_connect}| SSL_negotiation_time: %{time_appconnect}| TTFB: %{time_starttransfer}| Total time: %{time_total} \n" -o /dev/null -vsL https://www.example.com

注意: 請使用 CloudFront 網域名稱或替代網域名稱 (CNAME) 和 URL 路徑取代範例.com。

請根據每個事件或請求的 time-taken (所需時間),參閱本文中的相關解決方案一節。

如果您在過去觀察到延遲情形,請檢查 CloudFront 存取日誌time-taken (所需時間)time-to-first-byte (第一個位元組的時間) 欄位。CloudFront 存取日誌不會記錄用戶端進行 DNS 查詢流程以及 TCP 和 SSL/TLS 交涉所花費的時間

降低 DNS 解析的延遲

  • 增加用戶端 DNS 中的 DNS 快取時間。
  • 增加本機 DNS 伺服器中快取的存留時間 (TTL)
  • 增加 DNS 註冊商/提供者中的 DNS 記錄上的 TTL
  • 如果網際網路服務提供者的解析器 DNS 伺服器造成延遲,請考慮使用公用 DNS 伺服器。

降低 TCP 和 SSL/TLS - 交涉時間的延遲

  • 檢查您的本機網路頻寬和網際網路頻寬。
  • 檢查您的網際網路伺服器提供者或路由器是否出現任何網路中斷情形。
  • 透過網際網路服務提供者或網路路由最佳化您的本機網路效能。
  • 確認您正在使用正確的 DNS 解析器,其可讓您的 Web 瀏覽器找到最近且正確的 POP 位置。
  • 若要提高 HTTPS 網站效能,請保持簡短的認證鏈。
  • 延遲可能是由防火牆、Proxy 或本機路由器所造成。若要判斷是哪些項目造成延遲,請從在您的系統上執行下列 MTR 命令。如需詳細資訊,請參閱 Akamai 網站上的使用 MTR 診斷網路問題
mtr -rw example.com --no-dns

注意: 將 example.com 取代為網域名稱。

減少第一個位元組所需的時間 (TTFB) 和總耗時 (TTL) 的延遲

如果 CloudFront 傳回「X-Cache:Hit from cloudfront」 (來自 cloudfront 的 X-Cache:Hit)

從最近的邊緣節點提供請求時,CloudFront 會傳回「X-Cache:Hit from cloudfront」(來自 cloudfront 的 X-Cache:Hit)。若要減少延遲:

如果 CloudFront 傳回「X-Cache:Miss from cloudfront」(來自 cloudfront 的 X-Cache:Miss)

如果在請求傳送至來源時,CloudFront 傳回「X-Cache:Miss from cloudfront」(來自 cloudfront 的 X-Cache:Miss)。若要減少延遲:

  • 縮短 CloudFront 邊緣節點到來源位置之間的往返時間 (RTT)。如果來自 CloudFront 邊緣節點的請求轉到最近的來源位置,則 RTT 較小。但是,如果請求來自在地理位置上遠離來源的邊緣節點,則 TTFB 會受到影響。若要最佳化 RTT,請在地理位置較接近使用者的多個區域中複製原始伺服器。然後,設定來源網域名稱的 DNS,以便根據延遲或地理位置,將請求路由到原始伺服器。如果您使用 Amazon Route 53 作為 DNS 提供者,請參閱選擇路由政策以取得詳細資訊。
  • 開啟 CloudFront 自動壓縮功能以壓縮檔案,並降低下載速度。如果 CloudFront 自動壓縮功能不支援您的檔案格式,請在來源處預先壓縮該檔案,並為其提供內容編碼標頭。
  • 啟用來源延遲指標來檢查從來源到 CloudFront 的延遲。**注意:**適用標準 CloudWatch 費用
  • 啟用 CloudFront Origin Shield
  • 在啟用伺服器計時標頭功能時,新增回應標頭政策。此功能可協助您了解導致 CloudFront 與來源之間延遲的事件。

相關資訊

如何降低來自 CloudFront 的緩慢回應延遲?

我需要提供哪些資訊給 AWS Support,以診斷 CloudFront 網頁發佈延遲問題?

AWS 官方
AWS 官方已更新 7 個月前