如何诊断CDN故障

海外服务器 (437) 2015-11-18 14:01:07

某项目使用CDN做文件下载服务,最近不时有网友反馈下载出错,因为CDN是第三方提供的,且节点众多,所以诊断起来有点麻烦,必须想想招儿。

 

首当其冲的问题是如何确认CDN有哪些节点?

 

幸运的是通过阿里测提供的服务,我们能拿到这个IP列表,当然这个IP列表不可能百分百完整,不过应该包含了大部分的节点。

 

需要说明的是阿里测偏重于测试国内的网络环境,如果你要测试的CDN偏重于国外的网络环境,可以考虑使用Just-Ping提供的服务。

 

有了工具网站,再搭配AWK之类的神器,很容易就能整理出IP列表,把它保存成一个名为ip.txt的文件,每行一个IP,稍后使用。接下来我们只要在所有的节点上下载同一个文件,就可以验证问题了,不过串行下载太慢,这里给一个利用xargs并发下载的例子:

shell> cat ip.txt | xargs -n 1 -P 0 -I {} \

wget -q -e http_proxy={} -O {} "http://url/to/file" &

最后看看文件散列是否一致就大功告成了:

shell> md5sum *

 

一旦知道了哪个节点有问题,可以利用淘宝IP地址库反查一下省市县地址是哪里,对照看看是否有临近地区的网友反馈,如果有的话,基本上就可以确诊了。
说明:例子中使用了百度提供的JQuery CDN,国内外常用的Javascript CDN如下:

Upai Javascript CDN

Sina Javascript CDN

Baidu Javascript CDN

Microsoft Javascript CDN

Google Javascript CDN

 

平时多留意阿里测,Just-Ping,淘宝IP地址库这类工具网站,关键时候能帮你一把。

THE END