首页/云/云网络与负载均衡速查/CDN 命中率低的排查思路
云 DNS 与 CDN49 条

CDN 命中率低的排查思路

命中率低常常是多因叠加:TTL 过短、缓存键被随机参数污染、发布期频繁刷新、动态内容占比高、源站未按预期下发缓存头、部分流量绕过 CDN 直连源站。按「看曲线、抽样验证、定位规则」逐步收敛。

命中率低要多因排查

命中率低通常不是单一原因: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 换命中率可能带来内容不更新,应先确认业务对时效性的要求。

易错点

  • 只盯总体命中率不看单域名或单路径分布,平均值掩盖了局部问题
  • 随机参数进了缓存键,同一资源反复回源,回源带宽成本上升
  • 把统计口径不同的两个看板放在一起比较,得出错误结论并误改配置
  • 为了追命中率给动态内容也配长 TTL,导致用户拿到过期数据

数据来源与参考

  • 阿里云 CDN 缓存命中率文档
  • 腾讯云 CDN 命中率分析文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌