WebCDN流量及QOS異常故障RC查找與經驗分享

WebCDN流量及QOS異常故障RC查找與經驗分享
 

大規模計算網絡WebCDN用於解決大網互連互通,降低源站複雜性及壓力,性能方面,提高大用戶訪問量的網頁速度體驗方面,有非常好的效果.WebCDN本...
大規模計算網絡WebCDN用於解決大網互連互通,降低源站複雜性及壓力,性能方面,提高大用戶訪問量的網頁速度體驗方面,有非常好的效果.WebCDN本身的穩定性也決定了大用戶請求網頁的QOS. 然而加速網頁中某1-2個網頁設計不合理或加速某個源站中某個元素缺失的,也很可能形成WebCDN雪崩產生,進來全面影響WebCDN整體加速的QOS.本文以最近發生的WebCDN流量及QOS異常爲例,分享一下故障排查過程,RC等經驗.

現象:
QOS第三方監測數據發現:網站首頁首屏時間 ,網站首頁總下載時間飈升;
WebCDN流量及QOS異常故障RC查找與經驗分享0
運維監控系統發現:WEBCDN流量大漲及連接數飈升;
WebCDN流量及QOS異常故障RC查找與經驗分享

取某個WEBCDN節點的機器,分析其上6.1-6.6號的nginx日誌:
 
總體請求數:
 
for i in `find . -type f -name "*-20-05.log.gz"`;do a=`zcat $i|wc -l`;echo "$i $a";done|sort
 
./2012-06-01-20-05.log.gz 635220
./2012-06-02-20-05.log.gz 562762
./2012-06-03-20-05.log.gz 584111
./2012-06-04-20-05.log.gz 609735
./2012-06-05-20-05.log.gz 682701
./2012-06-06-20-05.log.gz 1011371
 
整體請求數有所上升
WebCDN流量及QOS異常故障RC查找與經驗分享1
 
查看集中的url訪問:
for i in `find . -type f -name "*-20-05.log.gz"`;do echo "$i `zcat $i|awk '{a[$2]++}END{for(i in a) print i,a[i],a[i]/NR}'|sort -k2 -nr|head -1`";done|sort
 
./2012-06-01-20-05.log.gz img1.5iops.com 157730 0.248308
./2012-06-02-20-05.log.gz img1.5iops.com 133432 0.237102
./2012-06-03-20-05.log.gz img1.5iops.com 130054 0.222653
./2012-06-04-20-05.log.gz img1.5iops.com 130020 0.21324
./2012-06-05-20-05.log.gz img1.5iops.com 177065 0.25936
./2012-06-06-20-05.log.gz focus.5iops.com 335022 0.331255  #focus的域名訪問暫所有請求的33%
 
分析1號—6號的focus的訪問情況,發現6.6號訪問的比例較之前增加了30倍。
 
for i in `find . -type f -name "*-20-05.log.gz"`;do echo "$i `zcat $i|sed 's/"//g'|awk'{if($2=="focus.5iops.com")a++}END{print a/NR}'`";done|sort
./2012-06-01-20-05.log.gz 0.0223383
./2012-06-02-20-05.log.gz 0.0173695
./2012-06-03-20-05.log.gz 0.0175429
./2012-06-04-20-05.log.gz 0.0200989
./2012-06-05-20-05.log.gz 0.0186056
./2012-06-06-20-05.log.gz 0.332346
 
而這些focus的訪問中499和404佔了很多:
zcat 2012-06-06-20-05.log.gz |awk '{if($2=="focus.5iops.com") print $0}'|awk '{a[$9]++}END{for(i in a)print i,a[i]}'
408 15
200 11605
400 84
500 628
502 5
304 1
404 54957
504 4
499 273572
 
其中30W的訪問集中在兩個圖片上,這個是由於源站程序存在問題導致。
 
zcat 2012-06-06-20-05.log.gz |awk '{if($2=="focus.5iops.com") print $7}'|sort |uniq -c|sort -nr
 190259 /subject/meirong120606new/img/nav_a.png
 103553 /subject/meirong120606new/img/nav_b.png
  18748 /subject/meirong120606old/img/nav_a.png
  16682 /subject/meirong120606old/img/nav_b.png
 
 
大量的4xx的訪問導致squid不能正常緩存,而嘗試去backup server,造成另外的機器incoming的流量增加
WebCDN流量及QOS異常故障RC查找與經驗分享2
當嘗試失敗後,又去源站進行請求,由於一直不能正常緩存,造成大量的重複的鏈接不能正常釋放,造成ss的連接數大量上升,同時squid的命中率下降
Ss 結果
WebCDN流量及QOS異常故障RC查找與經驗分享3
Mem命中率:
WebCDN流量及QOS異常故障RC查找與經驗分享4
 
查看頁面的調用情況:
在頁面的代碼調用中,有個css樣式(.Nav)調用了這2個不存在的圖片,而調用這個樣式圖片的是<li>標籤,單個頁面中存在多<li>標籤及循環調用,即每1次對此頁面請求會產生大量對WEBCDN的非緩存的404請求。
 
 
WebCDN流量及QOS異常故障RC查找與經驗分享5
 
 
WebCDN流量及QOS異常故障RC查找與經驗分享6
 
WebCDN流量及QOS異常故障RC查找與經驗分享

 
 
在21:30左右修復了這個問題,同時webcdn恢復正常
 
總結:
1.利用好webcdn的狀態碼監控和增加報警
2.源站要儘可能保證元素正確且存在,非正常的狀態碼在webcdn不能被緩存,就會造成重複的回源,影響webcdn性能。
發佈了1 篇原創文章 · 獲贊 2 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章