跳至內容

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

2 分的閱讀內容
0

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

簡短描述

若要對 CloudFront 的延遲問題進行疑難排解,請先確定導致延遲的事件。然後,請按照以下疑難排解步驟來降低延遲。

解決方法

確定導致延遲的事件

請完成下列步驟:

  1. 執行以下 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
    
    注意: 將 example.com 替換為您的 CloudFront 網域名稱或備用網域名稱 (CNAME) 和 URL 路徑。
  2. 在 Web 瀏覽器的開發人員工具中,檢查網絡請求的每個階段需要多長時間完成。例如,如果您使用 Mozilla Firefox,請檢查 Timings (計時) 索引標籤。如需詳細資訊,請參閱 Firefox 網站上的計時索引標籤。如果您在過去觀察到延遲情形,請檢查 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 命令:
    mtr -rw example.com --no-dns
    

注意: 將 example.com 替換為您的網域名稱。

降低 TTFB、TTL 和 RTT 的延遲

完成以下步驟,以降低第一個位元組所用時間 (TTFB)、總所用時間 (TTL) 和往返時間 (RTT) 的延遲。

CloudFront 回傳「X-Cache: Hit from cloudfront」(X-Cache:來自 CloudFront 的快取命中) 回應值

當請求來自最近的邊緣節點時,CloudFront 會傳回「X-Cache:Hit from cloudfront」(X-Cache:來自 CloudFront 的快取命中)。為了降低延遲,請完成以下步驟:

CloudFront 回傳「X-Cache: Miss from cloudfront」(X-Cache:來自 CloudFront 的快取未命中) 回應值

當請求到達來源時,CloudFront 會傳回「X-Cache:Miss from cloudfront」(X-Cache:來自 CloudFront 的快取未命中)。為了降低延遲,請完成以下步驟:

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

相關資訊

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

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

AWS 官方已更新 8 個月前