资讯文章 资讯 · NEWS
CDN 日志接进来之后:命中率、回源率和目录站该盯的那几个数
2026-10-23 约 1,146 字 预计阅读 3 分钟 yiyunkj
C
控制台上那个「命中率 92%」看起来很健康,但源站带宽还是满的。这种矛盾几乎都来自口径:你看的是请求命中率,源站痛的是字节命中率,两者可以差出二三十个百分点。

图片来源:网络,版权归原作者所有,侵权请联系删除
四个指标,四种算法
| 指标 | 算法 | 说明什么 |
|---|---|---|
| 字节命中率 | (节点响应总字节 − 源站响应总字节)÷ 节点响应总字节 | 源站带宽压力,最该盯 |
| 请求命中率 | (总请求数 − 回源请求数)÷ 总请求数 | 缓存策略是否生效 |
| 回源请求数比 | 回源请求数 ÷ 访问节点的总请求数 | 越低越好 |
| 回源流量比 | 源站响应总字节 ÷ 节点响应用户总字节 | 直接对应源站出口带宽 |
差距来自大文件和小文件的权重不同。一万个图标命中了,请求命中率好看;几个大图没命中,字节命中率就掉下来,而源站扛的是后者。所以看命中率先看字节口径,看缓存配置是否生效才看请求口径。
日志里的那个字段
CDN 请求日志里有缓存命中状态字段,命中记 HIT,未命中记 MISS。把它拉下来做聚合,能算出比控制台更细的分布:按 URL 前缀、按状态码、按 UA 分类。
有一点要注意:日志里的命中状态只反映边缘节点的命中情况。边缘未命中、上层节点命中时,日志里记的仍然是 MISS。所以别拿日志聚合的结果去和控制台的字节命中率对账,对不上是正常的。
目录站该盯的四组数
- HTML 的请求命中率。目录站页面多、长尾深,HTML 缓存策略一变,回源量立刻上升。
- 图片的字节命中率。缩略图是目录站流量主体,这组数直接决定源站带宽账单。
- MISS 的时段分布。改版、清缓存、预热没做,都会在图上出现尖峰,尖峰出现在什么时候,问题就在哪。
- 爬虫请求占比。按已验证的爬虫 UA 分组,看抓取量有没有异常变化。
第四组常被忽略。爬虫请求有自己的特点:它们访问的长尾页面多、缓存命中率低、对回源贡献大。抓取量涨了一倍而源站响应变慢,往往就是这组数的变化引起的。
命中率上不去的常见原因
四类,按出现频率排。
| 原因 | 表现 | 处理 |
|---|---|---|
| URL 带可变参数 | 同一资源被当成多个 | 配置忽略参数缓存 |
| 缓存时间过短 | 静态资源频繁回源 | 图片类设一个月以上 |
| 动态页面被缓存规则覆盖 | 用户看到别人的页面 | 动态路径设为不缓存 |
| 新内容没有预热 | 发布后瞬时回源暴涨 | 发布脚本里加预热 |
第一类和目录站的推广参数直接相关。带推广参数的链接被人到处转发,同一页面在 CDN 上变成几十个副本,命中率被稀释。这类参数要么在服务端剥离,要么在缓存键里忽略掉。
第二类要分资源类型看。带文件名指纹的资源设一年没问题;没指纹的图片和 HTML 得按更新频率分别定,别一刀切。
命中率是结果,不是目标。真正要看的是回源流量有没有把源站压住,以及爬虫请求有没有因为回源变慢而受影响。
落地方式建议简单点:每天拉一次离线日志,按上面四组数出一张表,配三条告警线——字节命中率跌破阈值、回源请求数比突然翻倍、5xx 占比上升。告警要带示例 URL,否则收到也不知道从哪查起。