背景信息
CDN緩存命中率低,會導致源站壓力大,靜態內容訪問效率低。您可以針對導致CDN緩存命中率低的具體原因,選擇對應的優化策略,提高CDN的緩存命中率。目前天翼云CDN支持流量命中率、請求命中率的統計與查詢。
統計方式:
- 流量命中率= 1 - 回源流量/流量(5分鐘粒度)。
- 請求命中率= 1 - 回源請求數/請求數(5分鐘粒度)。
查看流量命中率/請求命中率
用戶可以通過天翼云CDN控制臺查看流量命中率/請求命中率。查詢路徑:CDN控制臺-->數據分析-->CDN加速用量-->用量分析-->命中率。
優化緩存命中率
CDN加速的本質是緩存加速,把源站內容緩存在遍布全球的節點上,用戶可以就近從邊緣節點獲取內容,從而達到加速的效果。可以通過如下幾個手段提升緩存命中率。
- 合理設置緩存過期時間
緩存過期時間如果設置不合理,比如對不常更新的文件設置較短的緩存時間,導致文件頻繁過期,當有用戶請求到節點時頻繁需要回源站校驗后才能響應,會增加響應時延,因此建議:
- 不常更新的靜態文件(例如,圖片類型、應用下載、點播視頻類型等),建議設置較長時間。
- 頻繁更新的靜態文件(例如,JS、CSS、XML、HTML等),根據實際業務情況設置。
- 動態文件(例如,PHP、JSP、ASP、ASPX、DO等),建議設置為0s,即不緩存。
配置路徑:CDN控制臺-->域名管理-->域名列表-->選定具體域名 ,單擊“編輯”-->緩存配置-->緩存過期時間-->強制緩存。功能介紹文檔,詳情請見:緩存過期時間設置。
- 開啟去問號緩存
目前大多數的網頁請求都攜帶URL參數信息,參數以“?”開始,如果參數沒有包含重要信息(如版本信息等),是否攜帶該參數訪問不會影響用戶獲得正確的內容,可以選擇開啟“去問號緩存”功能,提高緩存命中率,提升分發效率。
效果差異說明:
- 開啟“去問號緩存”:
- 用戶首次訪問“//daliqc.cn/1.txt?test1”時,CDN無緩存,回源請求內容。
- 用戶第二次訪問“//daliqc.cn/1.txt?test2”時,由于開啟“去問號緩存”功能,所以“?”之后的參數被忽略,直接命中緩存“//daliqc.cn/1.txt”。
- 關閉“去問號緩存”:
- 用戶首次訪問“//daliqc.cn/1.txt?test1”時,CDN無緩存,回源請求內容。
- 用戶第二次訪問“//daliqc.cn/1.txt?test2”時,由于關閉“去問號緩存”功能,所以“?”之后的參數也需要匹配,要重新回源請求“//daliqc.cn/1.txt?test2”,命中率下降。
配置路徑:CDN控制臺-->域名管理-->域名列表-->選定具體域名,單擊“編輯”-->緩存配置-->緩存過期時間-->去問號緩存。功能介紹文檔,詳情請見:緩存過期時間設置。
- 文件預取
文件預取的原理是通過事前主動下發預取指令到CDN,由CDN自動觸發向客戶源站發起對應內容的請求,提前把文件緩存在CDN節點,后續訪問到CDN時,緩存可以直接命中,既提升命中率,又緩解源站因新內容發布而導致的回源壓力問題。
適用場景:首次接入、新內容發布、促銷活動。
使用建議:
- 首次接入CDN:域名首次接入CDN時,節點暫未緩存源站內容,此時,您可以將源站熱門內容預取至CDN節點。后續用戶訪問內容將直接從就近的CDN節點獲取內容,提升訪問速度。
- APP或軟件安裝包發布:新版本APP或軟件安裝包發布前,提前將安裝包預取至CDN節點。正式上線后,海量用戶的下載請求將直接由全球加速節點響應,提升下載速度的同時,大幅度降低源站壓力。
- 促銷活動:促銷活動發布前,提前將活動頁涉及到的靜態內容預取至CDN節點。活動開始后,用戶訪問的所有靜態內容均由加速節點響應,海量帶寬儲備保障用戶服務可用性,提升用戶體驗。
預取任務提交路徑:CDN控制臺-->刷新預取-->URL預取。功能介紹文檔,詳情請見:預取。
- 開啟分片回源
功能介紹文檔,詳情請見:分片回源,適用于APP、應用程序下載以及音視頻點播等較大文件的內容分發場景。
判斷URL是否命中緩存
通過響應頭,確認該次訪問命中情況:
- 在Chrome瀏覽器上,按F12。
- 選擇“Network”。
- 查看指定URL的響應頭,查看Ctl-Cache-Status頭部:
- Ctl-Cache-Status: HIT from province1-city1-ca1, HIT from province2-city2-ca2 表示邊緣節點命中。
- Ctl-Cache-Status: HIT from province1-city1-ca1, MISS from province2-city2-ca2 表示邊緣節點未命中,但是內容中心節點命中,實際未產生回源。
- Ctl-Cache-Status: MISS from province1-city1-ca1, MISS from province2-city2-ca2 表示邊緣節點和內容中心節點均未命中,產生回源。
說明CDN節點默認添加該響應頭,若客戶不希望響應該頭部,可提交工單給天翼云客服,由其人工配置去除。