前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CDN域名平均流量命中率为0的原因分析

CDN域名平均流量命中率为0的原因分析

原创
作者头像
mengmye
发布2021-12-06 20:03:57
1.7K0
发布2021-12-06 20:03:57
举报
文章被收录于专栏:腾讯云 CDN 专家服务

背景:

腾讯云 CDN 域名默认开启二级缓存(边缘层、中间层),只要由 CDN 任意一个层级命中,响应请求,则判定为命中 CDN 节点缓存。

流量命中率 =(总下行流量 - 回源流量)/ 总下行流量。

问题描述:

客户反馈xxx域名从流量命中率详情趋势图来看,并不是一直为0,但平均流量命中率显示为0,希望确认原因。

原因分析:

1、查看该域名的节点缓存配置,发现全部文件都有配置缓存一定的时间。

2、测试回源请求的url,CDN节点都能缓存命中,示例如下

3、从访问日志看,业务热度较低。另外,分析回源日志并没有发现同一url同一中间层节点重复回源的现象,说明节点确实能缓存命中。参照如下的平均流量命中率公式,分别查询总下行流量、回源流量,发现总下行流量<回源流量,也就是分子出现了负数,这种场景下,控制台流量命中率计为0。

平均流量命中率:根据所选时间粒度,仍利用(总下行流量 - 回源流量)/ 总下行流量同一个公式计算而来,而非利用流量命中率1分钟结果数据做算术平均。根据这个定义,当流量命中率并不全为0时,但平均流量命中率却为0,就不奇怪了。

ps:https://cloud.tencent.com/document/product/228/30797

那么问题来了,为何回源流量>总下行流量呢,正常情况下,这2者也应该是相等的。这时进一步分析回源日志,发现了一个异常现象,那就是源站不支持range请求,但是该域名开启了分片回源。从如下日志可以看到,回源请求0-0和0-4095时,源站都是响应200状态码以及完整文件,导致回源流量被放大,此时原因已经明确。

ps 分片回源功能逻辑:用户请求完整文件,CDN节点回源会先发起0-0探测文件CL,若文件小于4M,会继续发起0-4095的请求,最终再回源拉取完整的文件;若文件大于4M,默认会按1M大小逐片回源拉取。

ps:回源流量>访问流量可能的原因

1、预热到中间层,预热的url没有用户访问;

2、域名开分片,源站不支持range,导致回源被放大;

3、客户端主动断开,但cdn仍在回源拉取。(影响比较小。一般客户端断开,回源连接也会断开。但回源下载比用户下载快,而且客户端断开后,回源断开还有个延迟)

解决方案:

源站支持range请求或者CDN关闭分片回源即可。

当域名在控制台开启分片回源时,务必得测试下源站是否支持range,否则就会出现回源失败,或者回源流量放大的问题。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档