前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >影响命中率的因素及优化策略

影响命中率的因素及优化策略

原创
作者头像
v_psfwang
修改2020-11-06 16:41:40
1.3K0
修改2020-11-06 16:41:40
举报
文章被收录于专栏:腾讯云 CDN 专家服务

背景

CDN 在静态资源的加速场景中是将资源缓存在距离客户端较近的CDN 节点上,客户端访问该资源可以直接获取CDN节点的缓存资源,避免再通过较长的链路回源获取。因此 CDN的缓存命中率的高低直接影响客户体验。提高命中率还可以减少回源带宽,降低源站带宽成本,减小源站压力。下面我们一起探讨 CDN 缓存命中率的概念、影响因素以及优化策略。

概念:

流量命中率就是CDN 缓存命中 Response 的字节数除以 CDN所有请求响应的字节数,从控制台就可以看到命中率的实际情况:

影响因素:

一、预热和刷新

预热功能是将URL提前拉到CDN的中间源层,下次访问的时候就不需要回源站再拉取资源了,因此预热是没有直接导致边缘的命中率升高,但提升了CDN的命中率,减少了回源带宽。

刷新功能是将CDN节点上缓存的URL或目录purge掉,使缓存失效,下次访问的时候直接回源获取,会降低命中率。

刷新、预热都有限额,注意刷新、预热失败的时候是不是超过了限额。

优化点:切量前对TOP URL进行预热,慎用刷新功能。

刷新预热地址:https://console.cloud.tencent.com/cdn/refresh

二、忽略参数缓存

url 在带参数,全部参数或某些参数不影响业务的情况下,可以开启过滤参数功能

例如:http://www.qq.com/a.jpg?time=1http://www.qq.com/a.jpg?time=2 标识的是同一份资源http://www.qq.com/a.jpg,那么就可以开启过滤参数缓存;如果http://www.qq.com/a.jpg?h=666, h表示的是a.jpg的尺寸的话,就不能忽略该参数。因为忽略后的资源与原资源不是同一份资源。

过滤参数包括【不保留】和【保留指定参数】这两个功能。

不保留:忽略所有参数。

保留指定参数:多个参数之间用英文分号 ; 隔开,未指定的参数将被忽略。

优化点:将不影响文件内容的参数忽略

官网说明:https://cloud.tencent.com/document/product/228/41553

三、Range 回源

开启range回源配置能够有效提高大文件分发效率,提升响应速度,降低源站压力。

Range回源原理:

1)、带了range请求:会先发起该range的首字节,探测文件大小,比如:请求range:10000-30000,那么会发起range:10000-10000,探测文件大小

2)、不带range请求:会先发起一个文件首字节range:0-0探测文件大小,再判断资源是否大于4M,如果大于按1M一个分片回源,如果小于,直接请求整个文件,响应200

优化点:针对大文件开启range回源

官网说明:https://cloud.tencent.com/document/product/228/7184

这里需要注意一点:开启了range回源如果多个源站文件的last_modify不统一,业界有两种处理方式:一、腾讯CDN会响应200然后 rst请求被重置,请求失败。 二、阿里CDN会认为缓存失效,重新回源拉取,命中率下降、回源带宽增加;

四、设置缓存时间

源站服务器可以针对于资源配置其缓存规则。当源站配置了以下response头其中一种时CDN将不会对该文件进行缓存:

Cache-Control:max-age=0

Cache-Control:no-cache

Cache-Control:no-store

Cache-Control:private

而且上述的response头在CDN缓存规则中优先级最高(高于CDN上的缓存配置),因此上述的这些响应头并不适合于配置于源站的静态资源的。

另外当CDN上没有配置缓存规则时,资源的缓存规则将按照源站的Cache-Control或者Expires头进行缓存(Cache-Control优先级高于Expires),因此建议客户设置合理的Cache-Control或Expires头。

CDN上是可以针对于目录或者后缀名设置缓存配置的。而在CDN和源站同时配置缓存规则时是会以CDN上的缓存规则优先的(除非源站设置了不允许缓存的规则),因此建议用户在CDN控制台中设置合理的缓存规则,避免走默认的缓存规则导致频繁回源。另外特别注意CDN控制台上配置的缓存时间为0秒时,就是CDN不缓存,透传回源。

优化点:设置合理的缓存时间

官网说明:https://cloud.tencent.com/document/product/228/41540

五、资源过冷,触发了淘汰机制

CDN节点作为所有使用CDN的用户公用的节点资源,因此CDN配置的缓存规则表示了该资源在CDN上的缓存最长时间,如果用户在CDN上的缓存资源的热度较低的话是有可能被提前踢出CDN节点的缓存的。因此可以理解为缓存按照热度属性采取末尾淘汰制,所谓热度就是该文件在该节点上被访问的频率,文件热度不够即被提前剔除。

优化点:

1、对于流量较低的域名可以提前定期将TOP URL预热到CDN节点上,避免影响业务使用。

2、建议用户加量观察。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 概念:
  • 影响因素:
    • 一、预热和刷新
      • 二、忽略参数缓存
        • 三、Range 回源
          • 四、设置缓存时间
            • 五、资源过冷,触发了淘汰机制
            相关产品与服务
            内容分发网络 CDN
            内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档