網(wǎng)站流量暴漲,如何解決?

IDC 機房帶寬突然從平時 100M 增加到 400M,請你分析問題所在并解決

企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴展宣傳的重要窗口,一個合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,創(chuàng)新互聯(lián)面向各種領(lǐng)域:成都發(fā)電機租賃成都網(wǎng)站設(shè)計、營銷型網(wǎng)站解決方案、網(wǎng)站設(shè)計等建站排名服務(wù)。


【分析問題】

1)IDC帶寬被占滿的原因很多,常見的有:

a.真實遭受DDOS***(遇到過幾次,造成影響的不多見,其中還有***勒索的案例)。
 b.內(nèi)部服務(wù)器中毒,大量外發(fā)流量(這個問題老男孩接警5次以上)
 c.網(wǎng)站元素(如圖片)被盜連,在門戶頁面被推廣導(dǎo)致大量流量產(chǎn)生(接警3次以上)
 d.合作公司來抓數(shù)據(jù),如:對合作單位提供了API數(shù)據(jù)接口(有合作的公司的朋友了解這個)
 e.購買了cdn業(yè)務(wù),CDN猛抓源站(這個次數(shù)也不少)。
 f.其他原因還有一些,不普遍就不提了。

2)CDN帶寬異常,源站沒異常。

這類問題基本都是緩存在CDN的數(shù)據(jù)被頻繁訪問引起的。解決方法見結(jié)尾案例。

3) CDN帶寬異常,源站也異常。

可能原因如公司做推廣,大量數(shù)據(jù)訪問,熱點數(shù)據(jù)cache里不全。或CDN問題導(dǎo)致數(shù)據(jù)回源(有關(guān)CDN回源率問題及提升回源率經(jīng)驗,以后再和大家分享)。影響就是帶寬高,后端靜態(tài)服務(wù)器及圖片及存儲壓力大
   (    解決辦法見老男孩的7層門戶網(wǎng)站架構(gòu)案例文章http://oldboy.blog.51cto.com/2561410/736710)

【解決問題】

分析了問題的可能原因,就好比較排查了。

a.真實遭受DDOS***

DDOS問題的解決老男孩已經(jīng)寫了原創(chuàng)文章(http://oldboy.blog.51cto.com/2561410/845349),提供了17條解決經(jīng)驗思路,供大家參考,這里就不提了,那么實際上遭受真實DDOS***并產(chǎn)生影響的并不是最常見的。

b.內(nèi)部服務(wù)器中毒,大量外發(fā)流量。

這個問題的解決比較簡單,可能有的朋友說,看看服務(wù)器流量,哪個機器帶寬高處理下就好了。其實不然,實際解決比這復(fù)雜得多,帶寬打滿,所有監(jiān)控都是看不到的。
   比較好的思路,是聯(lián)系機房確定機房自身無問題后(機房一般沒法幫我們的),請機房斷開連接外部IP服務(wù)器的網(wǎng)線,如負(fù)載均衡器,僅保留××× SERVER,然后斷掉內(nèi)部服務(wù)器出網(wǎng)光關(guān)的線路,切斷外發(fā)流量源頭。
    接下來查看監(jiān)控流量服務(wù),判斷外發(fā)流量的服務(wù)器,然后進(jìn)行處理。
    其實,這個問題的發(fā)生及快速定位和很多公司的運維規(guī)范、制度關(guān)系很大,老男孩在給一些公司做運維培訓(xùn)分享時發(fā)現(xiàn)這個問題很嚴(yán)重(表象很好,內(nèi)部運維規(guī)范、制度欠缺很多),大家都討論的很深入,實際用的還是和聊的有差距。。
     比如有的公司開發(fā)直接FTP連接隨時發(fā)布代碼,或者由開發(fā)人員負(fù)責(zé)定時多次上線。而運維人員又不知曉,結(jié)果導(dǎo)致問題發(fā)生定位時間長,這點建議各公司的老大多思考下。
    老男孩的運維思路是,如果把網(wǎng)站機房比喻為一座房子,那首先要堵住后門(內(nèi)部),其次是監(jiān)控好前門(做好安全,留個小窗戶給外面人看,即80端口服務(wù),同時安排站崗值班的)。
    網(wǎng)站的無休止的隨時隨意發(fā)布代碼,對網(wǎng)站的穩(wěn)定影響是至關(guān)重要的。對運維人員對故障的定位快慢也很關(guān)鍵。根據(jù)老男孩不完全調(diào)查,約50%以上的重要運維故障都是程序代碼導(dǎo)致的,這也是老男孩給企業(yè)做培訓(xùn)分享時,灌輸建議CTO的,多把網(wǎng)站穩(wěn)定的責(zé)任分給開發(fā),而不是運維。如果這個思想不扭轉(zhuǎn),網(wǎng)站不穩(wěn)定狀況就難以改變。

c.網(wǎng)站元素(如圖片)被盜連

這個屬于網(wǎng)站的基本優(yōu)化了,apache,lighttpd,nginx都有防盜鏈的方案,必須要搞。說到這也提個案例,老男孩的一個學(xué)生,到了企業(yè)工作,發(fā)現(xiàn)人家網(wǎng)站沒有防盜鏈,結(jié)果上來沒有周知老大,直接做防盜鏈了,然后美滋滋的當(dāng)時還給我留言,說給公司搞防盜鏈了,很有成就,結(jié)果導(dǎo)致公司對外合作的業(yè)務(wù),都是小叉子了,幸虧發(fā)現(xiàn)的及時沒出大問題。

d-e.合作公司來抓數(shù)據(jù),如:對合作單位提供了API數(shù)據(jù)接口或購買了CDN業(yè)務(wù)。

最常見的就是購買CDN服務(wù),如:CDN新建一個節(jié)點(可能數(shù)十機器),直接來我們IDC原戰(zhàn)來抓數(shù)據(jù)(有的做好點的夜里來抓)。把原站抓的流量暴漲,嚴(yán)重的導(dǎo)致服務(wù)宕機。幾家CDN公司,都有過這樣的問題。這點希望CDN公司看到了,能改善,畢竟用戶上帝嘛。
    當(dāng)然和電信,聯(lián)通,GOOGLE,BAIDU,詞霸等公司的合作,也會有流量暴高的情況,這里面包括了為合作的站搜索引擎爬蟲爬數(shù)據(jù)的問題。有時雖然帶寬流量不高,但是服務(wù)器或數(shù)據(jù)庫撐不住了,搜索引擎專門喜歡爬我們的站內(nèi)搜索,DISCUZ,CMS等早期的開源程序的搜索都是全站like %%方式去數(shù)據(jù)庫搜索的,幾個爬蟲過來,直接就掛掉了,當(dāng)然這不是本文要討論的,解決方案以后再聊。

f.其他原因還有一些,不普遍就不提了。

上面的幾點比較常見,其他原因就不多見了,因此,作罷,打這么多字真不輕松啊。

下面的例子適合于網(wǎng)站流量很高,但是,還沒達(dá)到全網(wǎng)癱瘓的嚴(yán)重地步時的解決方案,適合我們自己的IDC機房及CDN業(yè)務(wù)(如果是CDN,那么,分析處理可以交給CDN,自己下載CDN日志分析也可)。

范例7:分析圖片服務(wù)日志,把日志(每個圖片訪問次數(shù)圖片大小的總和)排行,取top10,也就是計算每個url的總訪問大小
說明:范例7的生產(chǎn)環(huán)境應(yīng)用:這個功能可以用于IDC及CDN網(wǎng)站流量帶寬很高,然后通過分析服務(wù)器日志哪些元素占用流量過大,進(jìn)而進(jìn)行優(yōu)化裁剪該圖片(見老男孩發(fā)布的《淘寶的雙十一超大流量應(yīng)對文章點評》),壓縮js等措施。
本題需要輸出三個指標(biāo): 【訪問次數(shù)】    【訪問次數(shù)單個文件大小】   【文件名(可以帶URL)】
解答:
測試數(shù)據(jù)

59.33.26.105 - - [08/Dec/2010:15:43:56 +0800] "GET /static/p_w_picpaths/photos/2.jpg HTTP/1.1" 200 11299 "http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
59.33.26.105 - - [08/Dec/2010:15:43:56 +0800] "GET /static/p_w_picpaths/photos/2.jpg HTTP/1.1" 200 11299 "http://oldboy.blog.51cto.com/static/web/column/17/index.shtml?courseId=43" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
59.33.26.105 - - [08/Dec/2010:15:44:02 +0800] "GET /static/flex/vedioLoading.swf HTTP/1.1" 200 3583 "http://oldboy.blog.51cto.com/static/flex/AdobeVideoPlayer.swf?width=590&height=328&url=/`DYNAMIC`/2" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"
124.115.4.18 - - [08/Dec/2010:15:44:15 +0800] "GET /?= HTTP/1.1" 200 46232 "-" "-"
124.115.4.18 - - [08/Dec/2010:15:44:25 +0800] "GET /static/js/web_js.js HTTP/1.1" 200 4460 "-" "-"
124.115.4.18 - - [08/Dec/2010:15:44:25 +0800] "GET /static/js/jquery.lazyload.js HTTP/1.1" 200 1627 "-" "-"
法一:通過兩個數(shù)組來計算

因為我們要的最終結(jié)果是某個文件的訪問次數(shù)和消耗的流量,所以考慮建立以文件名為索引的兩個數(shù)組,一個存儲訪問次數(shù),一個保存消耗的流量,這樣當(dāng)使用awk按行遍歷文件時,對次數(shù)數(shù)組+1,同時對流量數(shù)組進(jìn)行文件大小的累加,等文件掃描完成,再遍歷輸出兩個數(shù)組既可以得到該文件的反問次數(shù)和總的流量消耗。

[root@locatest scripts]# awk '{array_num[$7]++;array_size[$7]+=$10}END{for(x in array_num){print array_size[x],array_num[x],x}}' access_2010-12-8.log |sort -rn -k1|head -10 >1.log
法二:
[root@locatest scripts]# awk '{print $7"\t" $10}' access_2010-12-8.log|awk '{S[$1]+=$2;S1[$1]+=1}END{for(i in S) print S[i],S1[i],i}'|sort -rn|head -10 >2.log
[root@locatest scripts]# diff 1.log 2.log
[root@locatest scripts]# cat 1.log
57254 1 /static/js/jquery-jquery-1.3.2.min.js
46232 1 /?=
44286 1 //back/upload/course/2010-10-25-23-48-59-048-18.jpg
33897 3 /static/p_w_picpaths/photos/2.jpg
11809 1 /back/upload/teacher/2010-08-30-13-57-43-06210.jpg
10850 1 /back/upload/teacher/2010-08-06-11-39-59-0469.jpg
6417 1 /static/js/addToCart.js
4460 1 /static/js/web_js.js
3583 2 /static/flex/vedioLoading.swf
2686 1 /static/js/default.js

以上轉(zhuǎn)載于李導(dǎo),感謝李導(dǎo)辛勤付出。

網(wǎng)站標(biāo)題:網(wǎng)站流量暴漲,如何解決?
文章源于:http://muchs.cn/article34/ipisse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作、手機網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航網(wǎng)站設(shè)計、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)