CDN刷新和预热常见问题

简介: 本文详细介绍了刷新和预热功能并列举了常见问题以及解决方案。

刷新和预热的概念

刷新功能是指提交URL刷新或目录刷新请求后,该加速域名下的所有CDN节点里的缓存内容将会被强制过期,当用户再次向CDN节点请求资源时,CDN会直接回源站获取对应的资源返回给用户,并将其缓存。
(1)因为刷新会强制清除缓存,因此刷新功能会降低缓存命中率。
(2)刷新支持URL刷新和目录刷新。
(3)URL刷新使用限制为2000条/日/每账户,目录刷新使用限制为100个/日/每账户。

预热功能是指提交URL预热请求后,源站将会主动将对应的资源缓存到CDN节点,当用户首次请求时,就能直接从CDN节点缓存中获取到最新的请求资源,无需再回源站获取。预热功能会提高缓存命中率。
(1)预热只支持URL预热,不支持目录预热。
(2)同一个ID每天最多预热500个URL,每次最多只能提交100条。

点击【操作类型】可以选择"刷新"或者"预热"
56EAF24E-C4C2-41D8-8B52-861695C2243F.png


源站更新以后CDN多久时间更新

CDN是否更新完全取决于CDN节点上的缓存是否过期了,如果缓存没有过期,那么CDN依然会返回缓存数据,因为CDN并不知道源站更新数据了。如果缓存过期了,那么客户端请求到CDN的时候,CDN因为没有缓存,就会回源向源站去获取数据,这个时候就获取到新的数据,进而依据缓存规则来把资源缓存下来。

如果用户没有在CDN上配置缓存规则,那么CDN是依赖于默认的缓存规则来缓存的,最大缓存时间不超过3600秒。如果用户有在CDN配置缓存规则,那么缓存过期时间就是依赖于用户配置的缓存规则的。

因此如果源站更新了资源,需要手动到CDN控制台去刷新缓存,或调用CDN的API/SDK接口去刷新缓存,一般情况下刷新是5分钟内生效。如果是调用API/SDK接口,可以考虑写一个自动化脚本。阿里云CDN为用户提供了Python示例脚本,帮助用户对文件或目录快速进行刷新和预热,具体可以参见刷新预热自动化脚本


如何查看预热任务是否执行完成

在CDN控制台刷新预热功能界面单击【操作记录】,即可查看预热任务的执行状态。预热任务的状态为成功,表示预热任务提交成功,并不代表文件已经预热结束。执行如下命令,查看预热任务的执行状态

curl -I 'http://cdnoss.xxxxxxxxxx.com/test.json'

系统显示类似如下
TB1oFf2JFXXXXa9XXXXXXXXXXXX.png
(1)CDN缓存节点可分为L1节点(一级节点)和L2节点(二级节点),请求的流程是:客户端-->CDN_L1-->CDN_L2-->源站。CDN的L1节点是边缘节点,分布在靠近用户侧,L2节点分布在几个大区下,可以把L2节点理解为汇聚式节点,一个L2对应多个L1节点。预热功能是指提交URL预热请求后,CDN的L2节点作为一个客户端,主动向源站发起请求,将源站的资源缓存到CDN的L2节点上。
(2)CDN的HTTP响应头里有Via字段(如上图),Via的前半部分代表二级节点状态,其中的“H”表示命中,说明文件已经预热到二级节点,即预热成功了,不需要再回源站。
(3)Via的后半部分代表一级节点的状态,“M”表示一级节点上没有缓存,需要向二级节点回源。


影响预热完成时间的因素

预热完成的时间跟预热的资源大小预热的URL数量源站的性能回源网络等因素有关。

(1)如前文所说,CDN是L1+L2的架构,预热是指L2节点回源。假设用户的CDN加速域名的调度域里有10个L2节点,那么预热一个URL,那么这10个L2节点就会同时向源站去请求这个资源。依次类推,如果同时预热100个URL,那就同时会有1000个请求去请求源站了。
(2)基于以上说明,因为预热会有并发的请求去请求源站,因此需要保证源站的性能、公网带宽等能满足,否则很可能会导致预热失败等情况。例如用户的源站带宽是5M,但是实际同时预热了大量的URL,造成大量来自CDN的预热请求,源站的带宽被打满,那么会导致CDN无法正常请求到数据,最终导致预热失败。
(3)另外请求资源的大小和数量也影响预热时间,比如预热1个5M的文件跟预热一个500M的文件,那时间肯定不一样。比如预热1个5M的文件,跟同时预热100个5M的文件,那时间也不一样。

基于以上说明,根据源站的性能情况,结合实际的业务情况,合理的预热可以到达更优的访问效果。

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
缓存 JSON tengine
CDN 预热功能| 学习笔记
快速学习 CDN 预热功能。
|
缓存 开发者 CDN
CDN 刷新功能| 学习笔记
快速学习 CDN 刷新功能。
|
6月前
|
域名解析 网络协议 API
阿里云DNS常见问题之阿里云OpenAPI的cdn20180510包没有DescribeCdnSubList如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
6月前
|
缓存 UED CDN
CDN:刷新和预热资源
CDN:刷新和预热资源介绍
182 1
|
CDN
CDN预热功能——如何判断预热是否完成
CDN预热功能——如何判断预热是否完成自制脑图
137 0
CDN预热功能——如何判断预热是否完成
|
CDN
CDN预热功能——了解URL预热功能
CDN预热功能——了解URL预热功能自制脑图
287 0
CDN预热功能——了解URL预热功能
|
缓存 CDN
CDN缓存设置——刷新缓存
CDN缓存设置——刷新缓存自制脑图
353 1
CDN缓存设置——刷新缓存
|
CDN
CDN预热功能——演示
CDN预热功能——演示自制脑图
211 0
CDN预热功能——演示
|
CDN
CDN刷新功能——目录刷新
CDN刷新功能——目录刷新自制脑图
406 0
CDN刷新功能——目录刷新
|
CDN
CDN刷新功能——URL刷新
CDN刷新功能——URL刷新自制脑图
349 0
CDN刷新功能——URL刷新