缓存命中率主要是做个参考,一般说来你的网站访问量大,访客单缓存命中率会比较高的。因为CDN网络把你的图片等资源放到内容分发网络中,没啥人访问,就会被类似末尾淘汰一样不缓存。不够热门长时间缓存也是浪费的, 具体可以参考https://help.aliyun.com/product/64812.html
CDN 控制台统计的缓存命中率仅仅是 CDN L1 层的命中率,实际情况 L2 层的缓存数据也是从 CDN 节点获取,并不会从源站获取数据,所以真实的 CDN 命中率 是略高于 CDN 控制台显示的命中率。 另外查看 CDN 加速域名流量情况,在加速域名流量不高的情况下,即便 MISS 状态的 URL 不多,但是对命中率的统计计算影响很大。例如,某 CDN 加速域名一 共对外提供了 10 个可以访问的 URL,其中有一个 URL 源站上设置了 no-cache, 导致不缓存,在其他 URL 访问都命中的情况下,命中率也仅有 90%。 在之前检查正常的情况下,有如下几种可能导致命中率低的情况,请逐一进行 排查: (1)源站上缓存 Header 设置不当,或者缺少必要的 Header,如果 CDN 的缓 存规则是不缓存,那么每次访问都是 MISS 状态,影响命中率,具体请参考前文“为 什么无法命中缓存”的描述。 (2)CDN 控制台设置了不缓存的规则,即某目录或者某种后缀的文件设置的缓 存时间为 0 秒,相关信息可以在 CDN 控制台查看。 (3)源站动态内容较多,目前 CDN 主要是加速静态资源,例如 CSS、JS、 HTML、图片、txt、视频等资源,针对动态资源 PHP、JSP、包含内部逻辑处理甚 至 Cookie 等资源都会回源数据。 (4)CDN 的加速 URL 中带有可变参数。例如 URL 地址为 http://XXX.XXX. cn/1.txt?timestamp=14378923,其中 timestamp 值为时间戳,每次访问此值均不 同。CDN 针对第一次访问的 URL,即之前未预热的 URL,无论该 URL 是否符合 CDN 的缓存规则,由于节点上还没有这个文件,第一次访问肯定都是 MISS 状态。 但是 timestamp 参数会变化,所以每次访问都是一个全新的 URL,则每次都返回 MISS 状态,从而影响命中率。 (5)检查是否存在频繁刷新缓存的操作。 (6)文件热度不够。不经常被用户访问到的 URL,即使符合所有缓存规则,但是经常有被节点去除缓存的风险。CDN 节点上缓存的文件,可以理解为按照热度属性 采取末尾淘汰制,热度就是该文件在该节点上被访问的频率,文件热度不够,其实一 定程度上跟这个域名本身的流量不高有关系。 针对以上情况,可以考虑通过 " 预热 URL"、" 配置资源缓存规则 "、" 过滤 URL 中可变参数 " 来优化缓存命中率,具体操作请参见优化 CDN 缓存命中率。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。