背景信息

CDN缓存命中率低,会导致源站压力大,静态资源访问效率低。您可以针对导致CDN缓存命中率低的具体原因,选择对应的优化策略,来提高CDN的缓存命中率。CDN缓存命中率包括流量命中率和请求命中率。

  • 流量命中率 = 命中缓存产生的流量 / 请求总流量

  • **请求命中率 **= 命中缓存的请求数 / 请求总数

    说明:

    流量命中率越低,回源流量越大,源站的流出流量越大,源站带宽资源占用越大,其代表了源站服务器收到的负载压力,请重点关注流量命中率。

查看缓存命中率

您可以登录CDN控制台查看流量命中率和请求命中率。

  1. 登录华为云控制台,在控制台首页中选择“CDN与智能边缘 > CDN”,进入CDN控制台。

  2. 在左侧菜单栏中,选择“统计分析”。

  3. 分别选择“使用量统计”和“访问情况统计”查看“流量命中率”和“请求命中率”。

    **图1 **流量命中率

    **图2 **请求命中率

优化缓存命中率

  1. 合理设置缓存过期时间

    CDN加速的本质是缓存加速,把源站资源缓存在遍布全球的节点上,用户可以就近从边缘节点获取资源,从而达到加速的效果。您可以通过CDN控制台合理设置缓存过期时间来提高缓存命中率,建议如下:

    a.对于不经常更新的静态文件(如图片类型、应用下载类型等),建议您将缓存时间设置为1个月以上。
    b.对于频繁更新的静态文件(如JS、CSS等),您可以根据实际业务情况设置。
    c. 对于动态文件(如PHP、JSP、ASP等),建议您将缓存时间设置为0,即不缓存。

    详细的设置步骤和注意事项请见如何设置缓存过期时间。

    说明:

    *如果源站设置了s-maxage=0、max-age=0、no-cache、no-store、private,CDN侧同时开启了“缓存遵循源站”功能(此功能默认关闭),CDN节点将无法缓存源站资源,导致频繁回源。
    *如果您的源站有多个主机,某个相同的资源在多个主机中的Last-modified、Etag、Content-Length不一致,CDN节点将无法缓存该资源,导致重复回源。
    *如果源站资源更新,请刷新资源对应的URL,以保证用户可以获得最新的资源。
    如果您修改了缓存规则
    * 新的规则仅对后面缓存的资源生效,已经缓存的资源需要等缓存过期后,再次缓存才会遵循新的缓存规则。
    * 如果您想要立即生效,请在修改缓存规则后执行缓存刷新操作。

  2. 开启过滤URL参数

    目前大多数的网页请求都携带URL参数信息,参数以“?”开始,如果参数没有包含重要信息(如版本信息等),是否携带该参数访问不会影响用户获得正确的资源,可以选择开启“忽略URL参数”功能,提高缓存命中率,提升分发效率,详见URL参数。

    典型应用

    *终端用户首次访问URL“http://www.example.com/1.txt?test1”时,CDN无缓存,回源请求资源;第二次访问“http://www.example.com/1.txt?test2”时,由于开通了“忽略URL参数”功能,所以“?”之后的参数不匹配,直接命中缓存“http://www.example.com/1.txt”。
    *终端用户首次访问URL“http://www.example.com/1.txt?test1”时,CDN无缓存,回源请求资源;第二次访问“http://www.example.com/1.txt?test2”时,由于没有开通“忽略URL参数”功能,所以“?”之后的参数也需要匹配,要重新回源请求“http://www.example.com/1.txt?test2”。

  3. 预热URL

    CDN可以通过缓存预热将源站资源主动缓存到CDN节点,用户访问时就能直接从CDN节点获取到最新的资源,详见缓存预热。

    当您的域名初次接入CDN加速、活动发布时您可以将源站资源预热到CDN节点,用户访问资源时直接从CDN节点获取,从而提升CDN的缓存命中率。

    典型场景

    初次接入CDN:域名初次接入CDN时,节点暂未缓存源站资源,此时,您可以将源站资源预热至CDN节点。后续用户访问资源将直接从就近的CDN节点获取资源,提升访问速度。
    安装包发布
    :*新版本安装包或是升级包发布前,提前将资源预热至CDN节点。正式上线后,海量用户的下载请求将直接由全球加速节点响应,提升下载速度的同时,大幅度降低源站压力。
    运营活动
    :**运营活动发布前,提前将活动页涉及到的静态资源预热至CDN节点。活动开始后,用户访问中所有静态资源均由加速节点响应,海量带宽储备保障用户服务可用性,提升用户体验。

  4. 开启Range回源

    Range回源是指源站在收到CDN节点回源请求时,根据HTTP请求头中的Range信息返回指定范围的数据给CDN节点。Range回源能有效缩短大文件的分发时间,提升回源效率,提高缓存命中率,详见Range回源。

    典型场景

    *未开通Range时,用户想观看指定片段的视频,而CDN回源时需要获取整个视频,所以回源流量大于响应给用户的流量,从而造成缓存命中率降低。开启Range回源后,CDN将分片回源获取资源返回给用户,从而提升缓存命中率。

  5. 其它
    *缓存资源需要更新时,尽量避免刷新目录

    当源站某个资源更新时,一般需要通过刷新相应的URL来强制节点缓存资源过期。刷新目录会将目录内所有的资源全部置为过期,用户下次访问时将无法命中缓存,全部回源站请求资源,因此尽量避免刷新整个目录,尤其慎重刷新根目录。
    

    *避免在URL中携带动态参数

    如果您的URL中包含动态参数,如时间戳,CDN无法缓存该资源,导致频繁回源。
    

判断URL是否命中缓存

  1. 在浏览器Chrome上,按F12。
  2. 选择“Network”。
  3. 查看指定URL的响应头,查看头部信息,进行如下判断:
    *如果有“x-hcs-proxy-type”头部,值为“1”即命中缓存,值为“0”即未命中缓存,不再查看其它头部;
    *如果无“x-hcs-proxy-type”头部,而有“X-Cache-Lookup”头部,值为“Hit From MemCache”、“Hit From Disktank”或“Hit From Upstream”即为命中缓存,其它值表示未命中缓存,不再查看其它头部;
    *如果同时无“x-hcs-proxy-type”、“X-Cache-Lookup”头部,有“age”头部,则值大于“0”即命中缓存,值为“0”即未命中缓存。

本文由华为云发布。

华为云CDN如何提高缓存命中率相关推荐

  1. 华为云CDN使能千行百业,业务价值不断凸显!

    华为云CDN让您全站加速下载,优化服务体验! 数字化作为新时代企业发展主旋律,已经成为千行百业实现业务增长绕不开的话题.在数字化转型升级的背景下,各企业为拥有更强的主动权,纷纷开始拥抱"云服 ...

  2. 促进企业流量高质量转化,华为云CDN加速方案值得选择

    伴随着互联网和数字化的发展,企业对于数据安全.需求响应等均提出了极高的要求.而为应对不断变化的企业需求,华为云基于CDN加速方案和Web应用防火墙(WAF)技术,为企业带来了速度和安全方面更好的联动体 ...

  3. 华为云CDN加速服务:让你体验不一样的云提速

    你是否为看视频的时候电脑卡而困扰,明明网络很好还是会卡:一张图片打开会经常延迟,试试华为云CDN,说不定会有意想不到的收获,华为云CDN你可以理解为加速器,具体是什么,来看看下面内容. 华为云CDN是 ...

  4. 带宽储备能力超100 Tbps,华为云CDN保障平台从容应对流量高峰

    频频崩溃的数据平台系统也引起了人们的注意,特别是最为常用的健康码.究其原因,大多是因为当天用户最高查询的峰值激增,从而导致平台系统阻塞. 此前西安"一码通"出现网络系统" ...

  5. 覆盖常见四大应用场景,华为云CDN能够更好满足企业业务加速需求

    众所周知,华为云CDN在落地时,相比较传统的内容分发网络,具有节点丰富.智能调度.安全防护.操作简单.稳定可靠等方面的优势,能够为企业提供更精准的调度和低时延用网体验,有效缓解源站压力,满足企业在业务 ...

  6. 华为云CDN,给企业发展按下“加速键”

    对于企业而言,数据文件多,难免会出现网卡掉线的情况,这时候华为云CDN就派上用场了,很多人可能不太清楚华为云CDN是什么,下面我给大家详细介绍下. 华为云CDN简介: 华为云CDN是指内容分发网络.C ...

  7. 华为云CDN为什么这么受用户的信赖?

    未来几年,以"互联网+"为核心的新一代信息技术革命浪潮必将席卷各行各业,云计算技术也不例外.华为云CDN作为中国领先的网络技术提供商,致力于提供专业.安全.稳定的网络加速服务,助力 ...

  8. 网络卡顿怎么办?快来试试华为云CDN

    网络卡顿怎么办?快来试试华为云CDN 在当今移动互联网时代下,手机已成为我们日常学习和办公的主要工具.随着智能手机功能越来越强大,它已经不再满足于单纯地作为一种通讯媒介而存在.如今的手机不仅可以上网浏 ...

  9. 华为云CDN助力火绒安全软件流畅下载体验

    如今的互联网世界病毒.木马.流氓软件.恶意网站的威胁大行其道,给电脑安装一款杀毒软件,一起向电脑病毒说拜拜! 火绒安全是一款纯粹的安全软件,以"专业.干净.轻巧"的特点深受用户欢迎 ...

最新文章

  1. 写单元测试应该注意什么
  2. 观察者模式(Observer Pattern)
  3. Parasoft、SmartBear和Gimpel Software测试分析类产品对比评测
  4. 【Linux 内核 内存管理】内存管理架构 ④ ( 内存分配系统调用过程 | 用户层 malloc free | 系统调用层 brk mmap | 内核层 kmalloc | 内存管理流程 )
  5. Insert SQL Query插入效率优化
  6. 统一沟通-技巧-9-Lync 2010-Outlook 2010-自动配置-2-普通人员
  7. LeetCode 392打劫房屋 python
  8. C++ 11 新特性: constexpr变量和constexpr函数
  9. Spring AOP用法
  10. 你离BAT之间,只差这一套Java面试题
  11. mysql5.7 设置远程访问
  12. 倒N字形排列java_Java实现n位数字的全排列
  13. centos dns服务器_CentOS-6 实战三 搭建DNS服务器
  14. shell 模拟多进程(3)
  15. Datawhale编程学习之数组和链表(1)
  16. 真-vue使用jsonp跨域
  17. 数据分析师真实的工作是怎样的,这篇文章带你看他们的职责
  18. 【FinalIK】Full Body Biped IK
  19. 基于的Java的十进制转二进制实现
  20. kali liunx使用心得之命令行模式下如何配置连接无线网络

热门文章

  1. [收藏]白话初级会计基础知识,从头讲到尾
  2. C# WinForm需要用到的图标easyicon
  3. win11右键菜单不折叠
  4. 【原创】Java获取CPU占用率、内存占用率最简单的方式
  5. 坦克机器人自动照看你的秘密花园
  6. python开发erp系统odoo_开源erp软件odoo在线开发环境部署实录
  7. 【3D目标检测】SECOND: Sparsely Embedded Convolutional Detection论文解读(2018)
  8. android9.0 谷歌全家桶,Motorola P30 NOTE/Play刷国际版9.0(Android One)教程
  9. 基于redis实现秒杀并防止超卖
  10. QQ中强制和他人聊天的代码