日常Bug排查-請求偶爾超時-磁盤故障
磁盤壞道
磁盤故障是個非常常見的現(xiàn)象。而磁盤壞道便是其中最常見的問題。而當(dāng)我們的應(yīng)用做磁盤操作的時候 正巧落在壞道上面,就會導(dǎo)致卡住的現(xiàn)象。如果壞道比較小的話,會在一段時間內(nèi)恢復(fù)響應(yīng)。但是,如果下次操作又落到壞道上面,依舊會卡主-_-!
故障現(xiàn)象
開發(fā)陸續(xù)收到服務(wù)器負(fù)載過高以及業(yè)務(wù)報錯告警。表現(xiàn)為偶爾的調(diào)用超時。經(jīng)排查業(yè)務(wù)告警和負(fù)載過高均出現(xiàn)在同一臺機器上。這時候呢,我們就可以立馬翻看監(jiān)控了。
監(jiān)控
(注:這邊只是示意圖,產(chǎn)線截圖因為安全原因不可能放出來的) 從中可以發(fā)現(xiàn),超時的調(diào)用時間分布和CPU Busy IoWait的時間分布一致。既然是IO Wait,我們很自然的想到可能是磁盤有問題。
磁盤監(jiān)控
圖中可以看到,disk和cpu iowait時間一致。同時觀測到,我們當(dāng)時的iops僅有30左右。很明顯的,可以推導(dǎo)出當(dāng)時磁盤有問題。SA反饋給廠商后,反饋磁盤有壞道。
后續(xù)方案
首先,由于磁盤問題不能立馬解決(需要等廠商換盤),所以先下線這幾臺機器的流量,等待下一次的維護(hù)后再上線。在應(yīng)用層,我們可以通過配置異步日志的方式來減少損失。但異步日志滿了之后,依舊會出現(xiàn)卡頓的現(xiàn)象,那么我們可以配置成異步日志可丟的模式,這就需要在日志的準(zhǔn)確性和系統(tǒng)的高可用之間做取舍了。
總結(jié)
磁盤出問題是一個非常常見的現(xiàn)象,在遇到問題后,和監(jiān)控曲線相對應(yīng)就能很快找到原因。
類似的性能/故障排查清單以及經(jīng)驗可以在下面這本書中找到
本文轉(zhuǎn)載自微信公眾號「解Bug之路」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系解Bug之路公眾號。




























