国际阿里云:提高CDN缓存命中率教程!!!

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

背景信息

CDN通过将静态资源缓存在CDN节点上实现资源访问加速。当客户端访问某资源时,如果CDN节点上已经缓存了该资源,用户请求会命中CDN节点上的缓存,直接从缓存中获取资源返回给用户,可避免通过较长的链路回源,提高资源的响应速度和降低源站的带宽压力。如果CDN缓存命中率低,会影响用户体验和增加源站的带宽压力。

CDN缓存命中率包括字节命中率和请求命中率:

  • 字节命中率=CDN缓存命中响应的字节数÷CDN所有请求响应的字节数

    说明

    字节命中率越低,回源流量越大,源站的流出流量越大,源站的带宽资源以及其他的负载越大,因此回源流量代表了源站服务器接收到的负载压力,在业务使用中主要关心字节命中率。

  • 请求命中率=CDN缓存命中的请求数÷CDN所有的请求数

查看CDN缓存命中率

查看CDN缓存命中率的方式如下:

  • 方法一:通过控制台查看

    CDN控制台提供的缓存命中率监控为字节命中率,详细信息如下:

    • 通过资源监控功能查询

      可查询数据的时间范围较大,适合查看较长周期(例如30天)内的命中率情况。时间粒度为5分钟的情况下,数据延迟15分钟左右。详细信息,请参见资源监控。

      命中率

    • 通过实时监控功能查询

      可查询数据的时间范围较小,适合查看较短周期(例如1小时)内的实时命中率情况。时间粒度为1分钟的情况下,数据延迟3分钟左右。详细信息,请参见实时监控。

      质量监控

  • 方法二:调用API查看

    • 资源监控功能对应的API

      API描述
      DescribeDomainHitRateData获取加速域名的字节命中率数据,支持获取最近90天的数据。
      DescribeDomainReqHitRateData获取加速域名的请求命中率数据,支持获取最近90天的数据。
    • 实时监控功能对应的API

      API描述
      DescribeDomainRealTimeByteHitRateData获取加速域名1分钟粒度的字节命中率数据,支持查询7天内的数据。
      DescribeDomainRealTimeReqHitRateData获取加速域名1分钟粒度的请求命中率数据,支持查询7天内的数据。

提高CDN缓存命中率

下表列出了影响CDN缓存命中率的因素和提高CDN缓存命中率的方法。

策略影响因素与应用场景配置方法
业务高峰前预热热门资源影响因素:运营大型活动或新版本安装包发布前,没有提前将资源预热到CDN节点,大量资源需要从源站获取,导致CDN缓存命中率低。

应用场景:

  • 运营活动

    运营一个大型活动时,提前将活动页涉及到的静态资源预热至CDN节点,活动开始后用户访问的所有静态资源均已缓存至CDN加速节点,由加速节点直接响应。

  • 安装包发布

    新版本安装包或升级包发布前,提前将资源预热至CDN加速节点,产品正式上线后,海量用户的下载请求将直接由CDN加速节点响应,提升下载速度,大幅度降低源站压力,提升用户体验。

预热资源
合理配置缓存过期时间:
  • 不常更新的静态文件(例如,图片类型、应用下载类型等),建议设置1个月以上。

  • 频繁更新的静态文件(例如,JS、CSS等),根据实际业务情况设置。

  • 动态文件(例如,PHP、JSP、ASP等),建议设置为0s,即不缓存。

影响因素:

  • CDN上未配置缓存策略,所有用户请求都需要回源站。

  • CDN上配置的缓存过期时间过短,缓存资源频繁过期,导致缓存命中率低。

应用场景:用户在源站发布了静态资源,CDN节点没有将资源缓存下来,或者CDN节点上缓存的资源很快就失效了。

配置缓存过期时间
去除URL中问号后的参数缓存影响因素:当URL请求中带有queryString或其他可变参数时,访问同一个资源的不同URL(URL携带的参数不同)会重新回源,导致CDN缓存命中率低。

应用场景:希望通过不同的URL(URL携带的参数不同),可以访问到同一个资源。

忽略参数
大文件设置分片回源策略影响因素:用户下载安装包可能下载一半就停止下载,或者观看视频只看了一部分就停止观看,即用户只需要访问资源文件指定范围内的部分内容,但是CDN节点会向源站请求整个文件,从而使得CDN节点从源站下载的内容大于响应给用户的内容,导致缓存命中率低。

应用场景:用户下载应用安装包或者观看视频资源。

配置Range回源
其他命中率优化策略除了以上几种常用的命中率优化措施以外,阿里云CDN还有其他的优化措施,这些措施可以根据不同的业务场景来配置,例如:中心302调度、边缘302调度、合并回源、共享缓存等。由阿里云售后工程师在后台配置。

查看缓存命中状态日志

在CDN的请求日志中,记录了所有CDN请求的缓存命中状态。详细日志格式,请参见下载日志。

缓存命中状态字段说明:

  • HIT:表示命中缓存。

  • MISS:表示未命中缓存。

说明

命中状态仅表示CDN L1节点的命中状态。例如,CDN L1节点未命中缓存,L2节点命中缓存,日志中仍显示MISS。

日志示例:

26/Jun/2019:10:38:19 +0800] 192.168.53.146 - 1542 "-" "GET http://example.aliyundoc.com/index.html" 200 191 2830 MISS "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://example.com/robot/)" "text/html"

您也可以调用DescribeCdnDomainLogs接口,获取加速域名的日志信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/192403.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

给在读博士的建议

早上起床第一件事,瞄了眼知乎! 发现现在的手机真的很智能,也许是聊天的时候不经意间提了一句,早上就推荐了自己想看到的东西! 分享给大家! 有哪些给在读博士的建议? 如何通过一句话判断一个博士…

LeetCode(12)时间插入、删除和获取随机元素【数组/字符串】【中等】

目录 1.题目2.答案3.提交结果截图 链接: 380. O(1) 时间插入、删除和获取随机元素 1.题目 实现RandomizedSet 类: RandomizedSet() 初始化 RandomizedSet 对象bool insert(int val) 当元素 val 不存在时,向集合中插入该项,并返回…

Karmada更高效地实现故障转移

随着云原生技术的发展,其应用场景不断扩大。越来越多的企业开始将应用程序部署在 Kubernetes 集群中,随着 Kubernetes 集群规模的不断扩大,也带来了许多管理挑战,例如多集群间负载均衡、资源调度、故障转移等问题。为了解决这些问…

【QT系列教程】之二创建项目和helloworld案例

文章目录 一、QT创建项目1.1、创建项目1.2、选择创建项目属性1.3、选择路径和项目名称1.4、选择构建项目类型1.5、布局方式1.6、翻译文件,根据自己需求选择1.7、选择套件1.8、项目管理,自行配置1.9、配置完成,系统自动更新配置 二、QT界面介绍…

istio学习笔记-安装

Istioldie 1.18 / 安装指南 基于Kubernetes的Istio的微服务架构需要安装以下组件: Istio控制平面组件:包括Istio-Pilot、Istio-Policy、Istio-Telemetry等。这些组件负责微服务的管理和配置,如流量管理、策略执行、遥测数据收集等。数据平面…

2023-11-15 LeetCode每日一题(K 个元素的最大和)

2023-11-15每日一题 一、题目编号 2656. K 个元素的最大和二、题目链接 点击跳转到题目位置 三、题目描述 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。你需要执行以下操作 恰好 k 次,最大化你的得分: 从 nums 中选择一个元素 m 。将选中…

安装 Lua 的 HTTP 库

首先,你需要安装 Lua 的 HTTP 库。可以使用 LuaRocks 来安装。以下是安装命令: luarocks install http然后,你可以使用以下代码来爬取网页内容: local http require http-- 设置代理信息 http.set_proxy(jshk.com.cn)-- 网页UR…

【C#学习】button:只显示图片

第一步:设置按钮背景图片,并且图片随按钮大小变化 第二步:设置按钮使之只显示图片 button1.FlatStyle FlatStyle.Flat;//stylebutton1.ForeColor Color.Transparent;//前景button1.BackColor Color.Transparent;//去背景button1.FlatAppe…

Flutter笔记:使用Flutter构建响应式PC客户端/Web页面-案例

Flutter笔记 使用Flutter构建响应式PC客户端/Web页面-案例 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/detai…

Live800:客服行业的发展历程及未来前景

随着信息技术和互联网的高速发展,客服行业也在不断变革和发展。客服行业是一个服务型的行业,其发展历程也与人们对服务需求的变化密切相关。本文将介绍客服行业的发展历程和未来前景。 客服行业的发展历程 20世纪70年代,客服行业主要以电话服…

uniapp运行到安卓模拟器一直在“同步手机端程序文件完成“界面解决办法

如果你是用的模拟器是android studio创建的模拟器,那么你需要新创建一个android11 x86架构的模拟器: 创建完成后,启动模拟器: 然后在hbuilder中重新运行到这个模拟器就可以了: 运行结果: 如果你是用安…

算法:穷举,暴搜,深搜,回溯,剪枝

文章目录 算法基本思路例题全排列子集全排列II电话号码和字母组合括号生成组合目标和组合总和优美的排列N皇后有效的数独解数独单词搜索黄金矿工不同路径III 总结 算法基本思路 穷举–枚举 画出决策树设计代码 在设计代码的过程中,重点要关心到全局变量&#xff…

在windows上利用vmware17 搭建centos7 mini版本服务器

安装centos7mini 修改名称和安装路径 也可以点击自定义硬件,进行硬件配置修改 设置内存 设置处理器 点击下图按钮进行设置 点击done 点击开始安装 点击设置root密码 设置成功,点击done ,root密码设置的简单的话需要按两次done 等待安装完成…

【算法与数据结构】46、47、LeetCode全排列I, II

文章目录 一、46.全排列I二、47.全排列II三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、46.全排列I 思路分析:本题要求是全排列,意味着每次递归的时候startIndex都要从0开始,否则…

Java排序算法之归并排序

图解 归并排序是一种效率比较高的分治排序算法,主要分为两个步骤,分别为“分”和“并”。 分:将序列不断二分,直到每个子序列只有一个元素为止。 并:将相邻两个子序列进行合并,合并时比较两个子序列的元素…

数字人,虚拟数字人——你看好数字人领域的发展吗?

你看好数字人领域的发展吗? 目录 一、虚拟人、数字人、虚拟数字人基本概念 1.1、虚拟人(Virtual Person) 1.2、 数字人(Digital Human) 1.3、虚拟数字人(Virtual Digital Human) 1.4、侧重…

牛客网:OR36 链表的回文结构

一、题目 函数原型: bool chkPalindrome(ListNode* A) 二、思路 判断一个单链表是否为回文结构,由于单链表不能倒序遍历,所以需要找到单链表的后半段,并将其逆置,再与前半段链表进行比较。 如何找到单链表的后半段呢&a…

Scala---方法与函数

一、Scala方法的定义 有参方法&无参方法 def fun (a: Int , b: Int) : Unit {println(ab) } fun(1,1)def fun1 (a: Int , b: Int) ab println(fun1(1,2)) 注意点: 方法定义语法 用def来定义可以定义传入的参数,要指定传入参数的类型方法可以写返…

CSS的初步学习

CSS 层叠样式表 (Cascading Style Sheets). CSS 能够对网页中元素位置的排版进行像素级精确控制, 实现美化页面的效果. 能够做到页面的样式和结 构分离. CSS 就是 “东方四大邪术” 之化妆术 CSS 基本语法规范: 选择器 若干属性声明 选择器决定针对谁修改 (找谁) 声明决定修…

uniapp 小程序 身份证 和人脸视频拍摄

使用前提&#xff1a; 已经在微信公众平台的用户隐私协议&#xff0c;已经选择配置“摄像头&#xff0c;录像”等权限 开发背景&#xff1a;客户需要使用带有拍摄边框的摄像头 &#xff0c;微信小程序的方法无法支持&#xff0c;使用camera修改 身份证正反面&#xff1a; <…