CDN缓存命中率较低可能的原因

2024-06-21 02:04

本文主要是介绍CDN缓存命中率较低可能的原因,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

背景: 

网站使用CDN加速以后,大部分静态文件都将会被离用户较近的CDN边缘节点缓存,由此起到访问加速效果。如果用户访问的文件由CDN节点直接响应,无需回源,则称之为缓存命中。CDN缓存命中率越高,也就意味着加速效果越好,相应的回源量也会极大减少。

天翼云CDN控制台上【统计分析】模块,可以看到缓存流量命中率和请求命中率数据。缓存命中的流量除以总流量称之为流量命中率,缓存命中的请求数除以总请求数称之为请求命中率。只要在CDN边缘节点,或是在中间节点命中,均统计为缓存命中(CDN用户请求流向为:用户客户端->CDN边缘节点->CDN中间节点->源站)。如果命中率低,则较多用户的请求都会从CDN节点回源,不仅访问效果不佳,还会给源站造成较大压力。本文将介绍产生此类情况的可能原因。

可能原因

  1. 如果域名刚接入天翼云CDN加速,则用户首次访问文件时CDN节点均需要回源获取,此时缓存命中率较低,需要经过一段时间后才能逐步把大部分文件缓存至CDN节点,这个时间往往要经过两三天至一周左右。
  2. 如果域名已接入天翼云CDN较长时间,仍命中率较低,则可排查是否存在如下情况:

 

 

是否用户请求量过低导致

如果域名请求数总量较少,则即使有少量URL未命中,仍会对总体命中率影响较大。例如,5分钟内仅100个URL请求,其中20个是访问同个URL,但因为该URL在CDN设置了不缓存或缓存时间为0(等同于不缓存),导致每次请求都回源,则此时CDN缓存命中率最高不会超过80%。此外,因为CDN节点磁盘缓存空间有限,一般会有基于文件热度淘汰冷文件机制。如果该域名访问的资源热度极低,例如第一次访问后,下次用户访问同个资源是在一周以后,则在此期间该文件可能因为热度过低被淘汰掉,也会导致命中率较低。

是否用户请求确实比较分散,热度较低导致

域名总请求数和访问量居中,但用户请求确实比较分散,即不同地区不同用户访问的内容都不一样,没有太为集中的热点,这种用户访问特性也会导致命中率较低。该情况可以结合CDN控制台上【统计分析】模块的“热门URL”数据来进行确认,例如按天统计的热门URL排名TOP10的访问次数很少,访问占比不到1%,则该域名整体命中率较低是正常情况。

是否因缓存设置不合理导致

CDN控制台上有推荐的缓存规则设置,客户可以基于该规则进行适当调整。如果缓存规则设置不合理,也会导致缓存命中率较低。可以结合CDN控制台上【统计分析】模块中“热门URL(回源)”数据进行确认。例如,回源请求次数排名TOP的URL,是否存在实际是可缓存的,或是否存在加速URL中携带问号后参数但实际指向同个文件,因未设置去问号缓存导致重复回源(详情请见:CDN缓存key携带问号后参数导致缓存命中率低)。如存在上述情况,可通过CDN控制台【域名管理】模块中“缓存配置”-“缓存过期时间设置”进行调整优化,例如将实际可缓存的URL,设置为强制缓存一段时间,或将相应URL设置为去问号缓存。

 

这篇关于CDN缓存命中率较低可能的原因的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1079899

相关文章

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

2024年6月21日-22日,51CTO“WOT全球技术创新大会2024”在北京举办。火山引擎边缘计算架构师李志明受邀参与,以“边缘容器技术在泛CDN场景的应用和实践”为主题,与多位行业资深专家,共同探讨泛CDN行业技术架构以及云原生与边缘计算的发展和展望。 火山引擎边缘计算架构师李志明表示:为更好地解决传统泛CDN类业务运行中的问题,火山引擎边缘容器团队参考行业做法,结合实践经验,打造火山

vue同页面多路由懒加载-及可能存在问题的解决方式

先上图,再解释 图一是多路由页面,图二是路由文件。从图一可以看出每个router-view对应的name都不一样。从图二可以看出层路由对应的组件加载方式要跟图一中的name相对应,并且图二的路由层在跟图一对应的页面中要加上components层,多一个s结尾,里面的的方法名就是图一路由的name值,里面还可以照样用懒加载的方式。 页面上其他的路由在路由文件中也跟图二是一样的写法。 附送可能存在

警告,恶意域名疯狂外联,原因竟然是……

前言    在某个风和日丽的下午,突然收到客户那边运维发过来的消息说我司的DTA设备在疯狂告警,说存在恶意域名外联,我急忙背上小背包前往客户现场,经过与客户协同排查,最终确定该事件为一起挖矿病毒引起的恶意域名外联事件。(因客户信息保密且为了保证文章逻辑完整性,部分截图为后期追加图) 事件分析 一看域名地址donate.v2.xmrig.com

设置Nginx缓存策略

详细信息 Nginx服务器的缓存策略设置方法有两种:add_header或者expires。 1. add_header 1)语法:add_header name value。 2)默认值:none。 3)使用范围:http、server、location。 配置示例如下: add_header cache-control "max-age=86400";#设置缓存时间为1天。add

大型网站架构演化(六)——使用反向代理和CDN加速网站响应

随着网站业务不断发展,用户规模越来越大,由于中国复杂的网络环境,不同地区的用户访问网站时,速度差别也极大。有研究表明,网站访问延迟和用户流失率正相关,网站访问越慢,用户越容易失去耐心而离开。为了提供更好的用户体验,留住用户,网站需要加速网站访问速度。      主要手段:使用CDN和反向代理。如图。     使用CDN和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速

javascript加密出问题原因

问题:js压缩和混淆都没问题,但是加密之后总是出问题,网上资料说加分号,我也加了。但是还是出问题。 参考办法: 后来我把所有if else语句里面的内容全部用{}大括号括起来并在if else语句最后加分号。然后再次加密,运行成功了。

【MyBatis学习7】MyBatis中的一级缓存

缓存的作用是减轻数据库的压力,提高数据库的性能的。mybatis中提供了一级缓存和二级缓存,先来看一下两个缓存的示意图:    从图中可以看出: 一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。二级缓存是mappe

java NIO 缓存区之内核空间、用户空间和虚拟地址

IO是基于缓存区来做的,所谓的输入和输出就是从缓存区中移入和移出数据。以IO输入为例,首先是用户空间进程向内核请求某个磁盘空间数据,然后内核将磁盘数据读取到内核空间的buffer中,然后用户空间的进程再将内核空间buffer中的数据读取到自身的buffer中,然后进程就可以访问使用这些数据。     内核空间是指操作系统内核运行的空间,是为了保证操作系统内核的能够安全稳定地运行而为内核专

访问网站时IP被屏蔽是什么原因?

在互联网使用中,有时我们可能会遇到访问某个网站时IP地址被屏蔽的情况。IP地址被网站屏蔽是一个相对常见的现象,而导致这种情况的原因多种多样,包括恶意行为、违规访问等。本文将解释IP地址被网站屏蔽的常见原因,同时,我们将提供用户解决IP屏蔽问题的解决方案 一、IP地址被网站屏蔽的常见原因 1、恶意行为: 恶意行为是导致IP地址被网站屏蔽的一大原因。这些行为包括但不限于大规模网络爬虫、DDoS攻

更改ip后还被封是ip质量的原因吗?

不同的代理IP的质量相同,一般来说可以根据以下几个因素来进行判断: 1.可用率 可用率就是提取的这些代理IP中可以正常使用的比率。假如我们无法使用某个代理IP请求目标网站或者请求超时,那么就代表这个代理不可用,一般来说免费代理的可用率普遍较低。 2.响应速度 响应速度可以用耗费时间来衡量,即计算使用这个代理请求网站一直到得到响应所耗费的时间。时间越短,证明代理的响应速度越快,用户在测试时可