十幾萬連接幾M的流量,嚇死“寶寶”了

    某局點升級(nginxats,同時去掉前端的nginx負載層),升級之後服務就不正常,硬生生的看着十幾萬連接,沒有流量,各種排錯,可謂是把心提到嗓子眼驚心動魄的半小時,雖然做了很好的業務機制,服務不正常用戶可以直接回源,不過對於我們的流量而言肯定是個鋸齒了,回顧一下排查過程。

    升級過程不說了,升完後對業務配置、健康心跳、磁盤設置、本地回源DNS簡單做了檢查,沒發現問題。接下來就是切流量過來,前端的DNS按照域名哈希將請求分發過來,流量迅速到了100M還在上升,連接數到了幾萬(域名質量不好,很多動態的,所以也算正常),但過了幾分鐘流量驟降,一直降到了幾M,觀察連接數沒降反升,內存幾乎吃滿。


wKiom1bzhJfwm1sBAAAsIR0QP0A921.png

(當前連接數)


wKioL1bzgkjyVlEsAAEHV57jF6I206.png

(進出流量及cpu、內存、tcp重傳1秒刷新動態監控圖,內存越跑越滿,tcp重傳越來越高)


    神經馬上緊張起來了,先檢查DNS是否正常,因爲本地回源DNS如果壞掉,會出現這種攢了大量連接無法服務的情況,然而測試發現本地回源DNS服務正常,看來不是簡單問題,crt打開多個窗口,開始監測:

    tailf /var/log/messages |grep kernel   沒有報錯,系統層面應該沒什麼問題。

    tailf /opt/ats/var/log/trafficserver/diags.log 沒有明顯報錯,只是過一段時間會提示連接太多,丟棄連接,說明業務肯定是不正常了,不過定位不了是哪裏的錯誤。

    tstop打開後查看整體的情況,發現正常刷新,但是每次刷新有些數據不能正常顯示,內存緩存和硬盤緩存的容量都沒有顯示,爲什麼沒有顯示呢,是設置錯誤了麼,然後再去檢查磁盤設置,發現records.config內存緩存設置爲內存的一半12Gstorge.config設置也沒問題,繼續檢查。

    tsar –l 1  監測,磁盤IO都爲0,所有的盤都不寫盤,於是想到底是因爲沒有流量導致不寫盤的,還是寫不了盤導致沒有流量的呢,先假設不寫盤纔沒流量的吧,不寫盤有兩種情況一是盤壞了二是磁盤的權限不對,馬上檢查,發現所有的數據盤擁有者所有組均爲tserver,而且檢查了全爲裸盤,貌似沒有問題。


wKioL1bzgOvy604gAAAljucCoO4099.png

(權限查看後發現沒問題)


    tsar –n  1 繼續檢查下歷史數據,發現ats啓動的瞬間是有流量的,緊接着流量驟降,而且磁盤剛開始是有IO的,越來越懷疑是硬盤問題但沒有證據。後來想,做個測試,乾脆不用硬盤,直接上內存,竟然有流量了,而且相對穩定,終於定位出問題了。


wKiom1bzgpTAuPmbAAAUDvZiyCk305.png

(將盤全部註釋掉) 


    繼續想,難道所有的硬盤都壞了麼,加入一個硬盤試試吧,依舊不行,繼續想下去,爲什麼tstop計算不出緩存呢,於是列出所有磁盤的大小,發現這個局點的每塊磁盤居然有將近2T左右,圖如下:


wKiom1bzgwngG7MEAABZKBOUChY464.png

(只有一個盤是186.5G,其餘的盤都在2T)


    繼續想可能是磁盤太大了,ats無法加入進來吧,於是更改使用磁盤的大小(300G),重啓ats,問題解決,鬆了一口氣,驚心動魄半小時。


wKioL1bzhAaizEQhAAA_rtsnjqs045.png

(磁盤大小配置更改,直接指定大小)


wKioL1bzhETygkZ3AAEwkHWwINY058.png

(更改重啓後,業務恢復正常)

自建個人原創站運維網咖社(www.net-add.com),新的博文會在網咖社更新,歡迎瀏覽。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章