如何診斷CDN故障?
某項目使用CDN做文件下載服務,最近不時有網(wǎng)友反饋下載出錯,因為CDN是第三方提供的,且節(jié)點眾多,所以診斷起來有點麻煩,必須想想招兒。
首當其沖的問題是如何確認CDN有哪些節(jié)點?
幸運的是通過阿里測提供的服務,我們能拿到這個IP列表,當然這個IP列表不可能百分百完整,不過應該包含了大部分的節(jié)點,有興趣的可以參考百度的JQuery CDN例子。
需要說明的是阿里測偏重于測試國內的網(wǎng)絡環(huán)境,如果你要測試的CDN偏重于國外的網(wǎng)絡環(huán)境,可以考慮使用Just-Ping提供的服務。
有了工具網(wǎng)站,再搭配AWK之類的神器,很容易就能整理出IP列表,把它保存成一個名為ip.txt的文件,每行一個IP,稍后使用。接下來我們只要在所有的節(jié)點上下載同一個文件,就可以驗證問題了,不過串行下載太慢,這里給一個利用xargs并發(fā)下載的例子:
shell> cat ip.txt | xargs -n 1 -P 0 -I {} \ wget -q -e http_proxy={} -O {} "http://url/to/file" &
最后看看文件散列是否一致就大功告成了:
shell> md5sum *
一旦知道了哪個節(jié)點有問題,可以利用淘寶IP地址庫反查一下省市縣地址是哪里,對照看看是否有臨近地區(qū)的網(wǎng)友反饋,如果有的話,基本上就可以確診了。
說明:例子中使用了百度提供的JQuery CDN,國內外常用的Javascript CDN如下:
- Upai Javascript CDN
- Sina Javascript CDN
- Baidu Javascript CDN
- Microsoft Javascript CDN
- Google Javascript CDN
平時多留意阿里測,Just-Ping,淘寶IP地址庫這類工具網(wǎng)站,關鍵時候能幫你一把。