当前位置: 首页 > news >正文

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设置为去问号缓存。

 

相关文章:

  • 无人机校企合作
  • Python学习笔记15:进阶篇(四)文件的读写。
  • vue 中实现用户上传文件夹的功能
  • 容器基本概念_从虚拟化技术_到容器化技术_开通青云服务器_并远程连接_容器安装---分布式云原生部署架构搭建007
  • 通过MindSpore API实现深度学习模型
  • 聚合大模型场景助力产业升级,WAIC 2024 容联云论坛即将开幕
  • 一键掌控,4G红外插座引领智能生活新潮流!
  • 21、24年--项目管理概论——项目经理的角色
  • Spring Boot集成tensorflow实现图片检测服务
  • 2024广东省职业技能大赛云计算赛项实战——编排部署ERP管理系统
  • 如何设计一个点赞系统
  • Linux系统安装Dify结合内网穿透实现远程访问本地LLM开发平台
  • Redis 数据恢复及持久化策略分析
  • windows系统配置linux环境wsl
  • 深入探索Llama 2:下一代开源语言模型的革新与影响
  • 【Amaple教程】5. 插件
  • docker-consul
  • flask接收请求并推入栈
  • js中forEach回调同异步问题
  • magento2项目上线注意事项
  • node.js
  • php面试题 汇集2
  • React的组件模式
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • 程序员该如何有效的找工作?
  • 全栈开发——Linux
  • 如何学习JavaEE,项目又该如何做?
  • 跳前端坑前,先看看这个!!
  • 再次简单明了总结flex布局,一看就懂...
  • 《码出高效》学习笔记与书中错误记录
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 说说我为什么看好Spring Cloud Alibaba
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​VRRP 虚拟路由冗余协议(华为)
  • !$boo在php中什么意思,php前戏
  • (02)Hive SQL编译成MapReduce任务的过程
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (4)事件处理——(7)简单事件(Simple events)
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (转)EOS中账户、钱包和密钥的关系
  • (转)Scala的“=”符号简介
  • .naturalWidth 和naturalHeight属性,
  • .NET 5种线程安全集合
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET基础篇——反射的奥妙
  • .net通过类组装数据转换为json并且传递给对方接口
  • .NET微信公众号开发-2.0创建自定义菜单
  • :O)修改linux硬件时间
  • @Pointcut 使用
  • [ Socket学习 ] 第一章:网络基础知识
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [ACP云计算]易混淆知识点(考题总结)