背景说明
使用天翼云CDN加速后,正常情况下网站各个维度的性能指标均会得到明显提升,具体的性能指标以及相关参数信息,详情请见:性能指标。如果使用CDN加速后没有得到预期的性能提升,可参见本文提到的多个因素。
详细信息
使用CDN加速后网站访问速度较慢,是一个较为复杂的综合性问题,我们可以通过了解CDN加速原理(详情请见:天翼云CDN加速简介 里的加速原理模块),以及CDN加速涉及到的各个环节,初步判断可能是哪些方面的原因。CDN加速(CDN,Content Delivery Network),即内容分发网络,是基于天翼云遍布全球的网络节点提供的内容分发加速服务。它将源站内容分发至最接近用户的节点,使用户可就近获取所需内容,解决因跨运营商、跨地域、服务器带宽及性能瓶颈带来的访问延迟问题,提高用户访问的响应速度和成功率。而一个完整的用户请求涉及的环节如下:DNS解析-->TCP建联-->SSL建联(如为https访问则涉及此环节)-->客户端发送请求-->服务端响应首包-->服务端响应完整文件,这其中各个环节均可能影响到最终访问速度的快慢。
要系统性的衡量某个域名或网站经过天翼云CDN加速后的访问效果数据,建议使用第三方拨测工具,例如,基调听云、博睿数据平台,或通过在APP中自行开发客户端监测工具,搜集大数据进行分析。
注意基调和博睿为外部第三方平台,需要付费使用。
结合上述拨测或监测工具的综合分析数据,可从如下维度逐个分析访问慢的原因:
首先,判断是否局部区域访问慢,还是全局性访问慢。通过基调或博睿的访问性能数据,可以看到各省份运营商的性能表现,如从运营商和省份角度均未看到明显性能差的部分,则可初步判断是全局性访问慢。
如果是全局性访问慢,则可从如下角度排查
- 访问慢的URL是否为动态不可缓存内容?
如果加速内容包含例如php、asp等由源站实时生成的动态文件,因CDN加速主要对静态可缓存文件做加速,动态部分是直接回源的,起不到较好的加速效果;此时若源站大部分文件是视频、APP等大文件,则推荐将源站内容做动静态分离,将动态部分的域名独立出来,使用全站加速产品对该域名做加速;若源站主要为动静态混合的小文件,且动态文件较多,则可考虑直接调整为使用全站加速,利用全站加速的动静分离、智能路由、传输优化等技术来提升访问效果。
- 是否源站本身响应慢?
如为动态URL,或频繁需要更新的静态内容,此时如果源站响应较慢,也会引起用户访问慢。此情况下,可从如下两方面提升源站响应速度:
- 如为源站性能本身限制,例如源站单机能力不足,CPU或带宽跑满等原因造成响应慢,则应对源站做扩容处理,例如调整为为更高硬件配置的服务器,或加入更多源站服务器构成集群共同服务。
- 如为源站网络问题导致,例如机房出口不稳定,或CDN回源节点和源站之间涉及跨境链路,则可考虑调整源站部署位置,优化回源节点到源站之间的网络链路。例如,如果存在用户访问为国内,源站在海外的场景,建议采用在国内也部署源站,国内+海外源站定期同步的方式来进行优化。
- 是否为可缓存文件但命中率较低?
如果访问慢的文件为可缓存文件,但是查看客户端收到的HTTP响应头发现未命中缓存(具体如何查看是否命中缓存,详情请见:如何通过浏览器查看CDN缓存是否成功),此时可以参考:CDN缓存命中率较低可能的原因 进行排查,并结合:提高CDN缓存命中率 进行命中率提升和优化。
最后,查看是否可使用CDN的可优化手段,例如可对html、js、css等文件开启页面优化、文件压缩功能等,也可提升访问效果。详情请见:html页面优化、文件压缩。
如果是局部访问慢,则可从如下角度查看
- 是否DNS设置错误导致?
个别用户可能存在local DNS设置错误,导致出现跨地域或跨运营商访问。因为CDN的权威DNS是基于用户请求的localDNS来判断所属的地区和运营商,从而将请求引导至对应最近的CDN节点,如果用户使用的localDNS错误,例如北京电信的用户使用了福建联通的localDNS,则可能会被引导至联通的节点,导致用户访问响应慢。解决该问题的方式是引导用户设置正确的localDNS,或将其设置为自动获取。
- 是否存在中国内地用户访问到海外节点?
如域名选择的加速范围为全球(不含中国内地),则此时国内用户将访问到海外节点,涉及跨国链路,时延较高。此场景下建议将域名加速范围调整为全球,或国内用户使用独立的域名站点,并设置对应域名加速范围为中国内地,通过上述两种方式使得国内用户将访问到国内节点,海外用户访问到海外节点,访问效果得到提升。
- 是否用户至CDN节点侧网络情况差导致?
如仅某省份运营商访问慢,可以通过基调或博睿中对应省份运营商用户到CDN节点的ping信息进行网络情况的初步判断,如果仅少量用户ping的网络延时异常,则可能是对应客户端出口网络问题。
如以上参考维度均未排查出问题,请提交工单至天翼云客服人工处理。