开发者社区> 问答> 正文

阿里云CDN缓存命中率低如何分析及如何优化?

阿里云CDN缓存命中率低如何分析及如何优化?

展开
收起
Lee_tianbai 2021-01-05 13:43:56 1269 0
2 条回答
写回答
取消 提交回答
  • 云服务器爱好者,服务器建站,WordPress网站搭建和安装调试~

    缓存命中率主要是做个参考,一般说来你的网站访问量大,访客单缓存命中率会比较高的。因为CDN网络把你的图片等资源放到内容分发网络中,没啥人访问,就会被类似末尾淘汰一样不缓存。不够热门长时间缓存也是浪费的, 具体可以参考https://help.aliyun.com/product/64812.html

    2021-01-05 14:21:17
    赞同 展开评论 打赏
  • 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 缓存命中率

    2021-01-05 14:21:21
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载