背景信息
CDN缓存命中率低,会导致源站压力大,静态内容访问效率低。您可以针对导致CDN缓存命中率低的具体原因,选择对应的优化策略,提高CDN的缓存命中率。目前天翼云CDN支持流量命中率、请求命中率的统计与查询。
统计方式:
- 流量命中率= 1 - 回源流量/流量(5分钟粒度)。
- 请求命中率= 1 - 回源请求数/请求数(5分钟粒度)。
查看流量命中率/请求命中率
用户可以通过天翼云CDN控制台查看流量命中率/请求命中率。查询路径:CDN控制台-->数据分析-->CDN加速用量-->用量分析-->命中率。
优化缓存命中率
CDN加速的本质是缓存加速,把源站内容缓存在遍布全球的节点上,用户可以就近从边缘节点获取内容,从而达到加速的效果。可以通过如下几个手段提升缓存命中率。
- 合理设置缓存过期时间
缓存过期时间如果设置不合理,比如对不常更新的文件设置较短的缓存时间,导致文件频繁过期,当有用户请求到节点时频繁需要回源站校验后才能响应,会增加响应时延,因此建议:
- 不常更新的静态文件(例如,图片类型、应用下载、点播视频类型等),建议设置较长时间。
- 频繁更新的静态文件(例如,JS、CSS、XML、HTML等),根据实际业务情况设置。
- 动态文件(例如,PHP、JSP、ASP、ASPX、DO等),建议设置为0s,即不缓存。
配置路径:CDN控制台-->域名管理-->域名列表-->选定具体域名 ,单击“编辑”-->缓存配置-->缓存过期时间-->强制缓存。功能介绍文档,详情请见:缓存过期时间设置。
- 开启去问号缓存
目前大多数的网页请求都携带URL参数信息,参数以“?”开始,如果参数没有包含重要信息(如版本信息等),是否携带该参数访问不会影响用户获得正确的内容,可以选择开启“去问号缓存”功能,提高缓存命中率,提升分发效率。
效果差异说明:
- 开启“去问号缓存”:
- 用户首次访问“http://ctyun.cn/1.txt?test1”时,CDN无缓存,回源请求内容。
- 用户第二次访问“http://ctyun.cn/1.txt?test2”时,由于开启“去问号缓存”功能,所以“?”之后的参数被忽略,直接命中缓存“http://ctyun.cn/1.txt”。
- 关闭“去问号缓存”:
- 用户首次访问“http://ctyun.cn/1.txt?test1”时,CDN无缓存,回源请求内容。
- 用户第二次访问“http://ctyun.cn/1.txt?test2”时,由于关闭“去问号缓存”功能,所以“?”之后的参数也需要匹配,要重新回源请求“http://ctyun.cn/1.txt?test2”,命中率下降。
配置路径:CDN控制台-->域名管理-->域名列表-->选定具体域名,单击“编辑”-->缓存配置-->缓存过期时间-->去问号缓存。功能介绍文档,详情请见:缓存过期时间设置。
- 文件预取
文件预取的原理是通过事前主动下发预取指令到CDN,由CDN自动触发向客户源站发起对应内容的请求,提前把文件缓存在CDN节点,后续访问到CDN时,缓存可以直接命中,既提升命中率,又缓解源站因新内容发布而导致的回源压力问题。
适用场景:首次接入、新内容发布、促销活动。
使用建议:
- 首次接入CDN:域名首次接入CDN时,节点暂未缓存源站内容,此时,您可以将源站热门内容预取至CDN节点。后续用户访问内容将直接从就近的CDN节点获取内容,提升访问速度。
- APP或软件安装包发布:新版本APP或软件安装包发布前,提前将安装包预取至CDN节点。正式上线后,海量用户的下载请求将直接由全球加速节点响应,提升下载速度的同时,大幅度降低源站压力。
- 促销活动:促销活动发布前,提前将活动页涉及到的静态内容预取至CDN节点。活动开始后,用户访问的所有静态内容均由加速节点响应,海量带宽储备保障用户服务可用性,提升用户体验。
预取任务提交路径:CDN控制台-->刷新预取-->URL预取。功能介绍文档,详情请见:预取。
- 开启分片回源
功能介绍文档,详情请见:分片回源,适用于APP、应用程序下载以及音视频点播等较大文件的内容分发场景。
判断URL是否命中缓存
通过响应头,确认该次访问命中情况:
- 在Chrome浏览器上,按F12。
- 选择“Network”。
- 查看指定URL的响应头,查看Ctl-Cache-Status头部:
- Ctl-Cache-Status: HIT from province1-city1-ca1, HIT from province2-city2-ca2 表示边缘节点命中。
- Ctl-Cache-Status: HIT from province1-city1-ca1, MISS from province2-city2-ca2 表示边缘节点未命中,但是内容中心节点命中,实际未产生回源。
- Ctl-Cache-Status: MISS from province1-city1-ca1, MISS from province2-city2-ca2 表示边缘节点和内容中心节点均未命中,产生回源。
说明CDN节点默认添加该响应头,若客户不希望响应该头部,可提交工单给天翼云客服,由其人工配置去除。