背景
访问CDN静态资源对比访问源站一般情况下会更快。 但有时候我们也会遇到这样的用户,反馈打开CDN网站变慢了。打开CDN网站变慢有各种原因, 但也未必就一定是网络和链路的问题。 下面我们一起看下下面这个例子
问题描述
某客户反馈网站接入cdn以后一直正常,今天突然变慢了,并且源站访问速度正常。
诊断与分析
打开浏览器,并打开开发者页面复现客户问题,观察现象
发现这个页面加载了很多js,cs等这种文件, 其中有一个文件返回了200,但一致在pending
2. 检查这个文件的request和response先看下和源站有没有什么区别
这里特别明显的看到,同样的这个css资源, 节点缓存和源站的资源etag不一样, 也就是不一致的资源
分析:在对比性能之前,我们首先要保证测试条件对等才有意义。 这里我们发现加载同样名字的资源,内容不一致,第一步就需要让缓存和节点文件保持一致。
解决办法
刷新该资源url, 让节点缓存和源站保持一致, 然后重新测试,访问速度正常,该问题解决了。
小结
访问慢,并不一定是由于数据下载慢导致url访问慢, 慢的一个因素有可能是因为这些动态加载资源内容本身的问题导致渲染慢。当然正常情况下,如果源站和CDN的渲染文件保持一致,访问效果应该一致的。 所以遇到这种问题时,我们可以第一步先检查一下前提条件, 看下源站和缓存资源是不是版本一致。这里客户在反馈的时候还特意强调了昨天还是好好的, 今天就不行了。这个时候直接打开开发者界面去检查一下etag是最有说服力的, 并且能够帮你快速排除或定位这个影响因素。