命中率低要多因排查
命中率低通常不是单一原因:TTL 过短、缓存键被随机参数污染、发布期频繁刷新、动态内容占比高、源站未按预期下发缓存头、部分流量绕过 CDN 直连源站,都会拉低曲线。排查顺序是看曲线判趋势、抽样 URL 看响应头、再定位到具体规则,避免一上来就改配置。
基本信息
| 统计口径 | 各厂商可能按流量或按请求统计,混用会得出相反结论 |
|---|---|
| 步骤一 | 看命中率与回源率曲线,区分突降还是长期偏低 |
| 步骤二 | 抽样 URL 看响应头,确认实际命中情况 |
| 步骤三 | 核对缓存规则、缓存键、TTL 与刷新记录 |
| 常见根因 | 随机参数、短 TTL、频繁刷新、直连源站流量 |
典型使用场景
- 大促前命中率突然下滑,需要快速定位是否有参数污染
- 发版窗口命中率周期性下跌,判断是否为频繁刷新所致
- 新接入域名命中率一直偏低,核对规则与源站缓存头
- 排查成本异常,命中率下降往往意味着回源流量上升
- 评估缓存策略调整效果,用命中率曲线做前后对比
抽样查看命中状态
抽样查看命中状态
for u in https://cdn.example.com/assets/app.js https://cdn.example.com/index.html; do
echo "== $u"
curl -sI "$u" | grep -i -E 'x-cache|age|cache-control'
done
# Age 持续递增说明命中边缘缓存;每次都接近 0 说明反复回源原因与验证
| 可能原因 | 观察到的现象 | 验证方式 |
|---|---|---|
| 随机参数进缓存键 | 同一资源大量 MISS | 对比带参与不带参请求 |
| TTL 过短 | 回源率长期偏高 | 查看响应头 cache-control |
| 频繁刷新 | 发布窗口曲线突降 | 核对刷新记录 |
| 直连源站流量 | CDN 侧流量与业务量不符 | 源站访问日志分析来源 |
排查前先确认统计口径(按流量还是按请求),不同看板混用会得出完全不同的结论。
命中率是结果指标而不是目标:盲目调长 TTL 换命中率可能带来内容不更新,应先确认业务对时效性的要求。