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