概觀

若要識別機會以便提高 Web 應用程式速度,應先從測量效能開始。測量的效能受到以下兩者影響:採用 CDN 進行的內容交付品質以及 Web 應用程式的設計方式。本文聚焦測量內容交付效能的最佳實務。這種做法對於以下各項非常重要:基準測試 CDN (例如推出新 CDN)、在多 CDN 架構切換 CDN,以及僅針對持續 CDN 組態進行變更 (例如推出 HTTP/3 等新通訊協定)。為獲得最相關且最準確的 CDN 效能資料,必須仔細選取測試條件:測量技術與測試條件。

Amazon CloudFront Flash Talks:最佳實務

測量技術

用於應用程式層級效能測量的合成測試

合成測試是一種測量技術,其中操作人員模擬使用者載入其 Web 應用程式的情境。您可利用 Chrome Lighthouse 等工具從操作人員的電腦輕鬆完成,或使用 WebPageTest.org 等工具從資料中心完成,還可使用 CatchpointCloudWatch Synthetics 等工具從部署在全球資料中心與 ISP 骨幹的複雜探查網路完成。

這種方法對於了解 Web 應用程式程式碼的效能 (例如 javascript 對頁面加載的影響) 很有助益。建議採用此方法在程式碼發布程序的不同步驟 (例如,在產品前環境的合成測試) 監控程式碼更新後應用程式效能的改進或迴歸。

然而,在測量 CDN 效能時,合成測試有所不足。例如,合成測試探查通常位於不傳輸真實使用者流量的網路,但並非所有 CDN 的路由系統都已最佳化。此外,相較於實際流量負載,合成測試產生的流量相對較低,這並不能有效反映 CDN 如何在增加流量的過程加熱網路。基於這些原因,建議採用真實使用者測量 (RUM) 技術來進行基準測試 CDN。閱讀

用於 CDN 層級效能測量的真實使用者測量

如您要測量 CDN (例如 CloudFront) 的效能,請考慮採用真實使用者測量 (RUM) 技術並運用 Cloud Watch RUM 等工具。RUM 為您提供最準確的資料,讓您從使用者的角度了解 Web 應用程式效能。CloudWatch RUM 可讓您了解 CDN 效能如何影響應用程式的 Core Web 核心,例如最大內容繪圖指標 (LCP)。您也可利用 RUM 來關聯 CDN 效能與您的業務 KPI (例如使用者造訪次數、銷售量等)。若要採用 CloudWatch RUM,您需要在網頁添加 javascript 標籤。javascript 會從瀏覽器 API 收集資料,例如連線步驟 (DNS 查找、TCP 連線等) 或 Core Web 核心頁面載入時間明細,然後將其傳送到 CloudWatch RUM 進行儀表板作業。您可篩選特定維度 (例如瀏覽器類型、使用者國家/地區或特定頁面 ID) 來分析 CDN 效能。

當您的 CDN 在這些維度之一顯示延遲時 (例如特定頁面或地理區域),請深入研究外部維度內請求的網路指標。TCP 連線時間較慢可能表示路由未處於最佳化狀態,而快取遺漏時,前往第一個位元組的時間較慢可能表示來源緩慢。利用 CloudFront 伺服器端疑難排解及結合 CloudWatch RUM 來進一步調查並了解任何延遲問題。

Amazon CloudWatch 的真實使用者監控

CDN 基準測試的最佳實務

請考慮以下最佳實務來為 CloudFront 等 CDN 基準測試條件設定無偏見的測試條件:

  • 傳送大幅流量 (最少 20%) 到每個 CDN,以便大規模測量 CDN 的實際效能。如 CloudFront 這樣的 CDN 在加熱時可顯示較佳的大規模效能 (例如,已填入快取、TCP 連線集區加熱,以及由 ISP 快取的 DNS 項目)
  • 以相同條件針對所有 CDN 進行基準測試。向相同使用者群同時傳送相似流量至每個 CDN。
  • 以相關時間長度進行測試。例如,如您提供長尾內容,CDN 可能需要數天才能填入其快取並將其快取命中率提高到穩定狀態。
  • 設定具相同功能的 CDN,例如壓縮、影像最佳化、通訊協定 (HTTP/3 與 H2、TLS1.3 與 TLS1.2、IPv6 vs IPv4),來源加速 (Origin Shield) 等等。

用於流量控制的部分第三方解決方案 (例如 NS1 的 PulsarCitrix 智慧流量管理) 納入其自己的 RUM 資料,該資料收集來自您應用程式以外的來源。如您採用此類工具,在考慮 CDN 效能基準測試時,請考慮以下幾點:

  • CDN 是否以相同條件或類似的組態及最佳化進行測試?
  • 每個維度收集多少資料點? 更多資料點會帶來更準確的基準測試 (加熱的 CDN、統計錯誤等等)
  • 測試物件是否擁有與您應用程式相同的特性 (例如靜態與動態、小型物件與大型物件、熱門物件與非熱門物件等等)
  • 其中部分工具提供可能性可在您自己的 CDN 進行 RUM 測試。請考慮這個選項,因其可更有效反映使用者透過 CDN 體驗的效能。
  • 採用與應用程式相關的最合適效能指標組合 (延遲、輸送量、P50 與 P90) 以及可用性。例如,相較於延遲,大型物件下載對輸送量更敏感。

資源

本頁對您是否有幫助?