我發現 Amazon 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
注意: 將 example.com 替換為您的 CloudFront 網域名稱或備用網域名稱 (CNAME) 和 URL 路徑。
- 在 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 交涉時間的延遲
請完成下列步驟:
注意: 將 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 的緩慢回應延遲?
我需要提供哪些資訊給 AWS Support,以診斷 CloudFront 網頁發佈延遲問題?