記錄一次服務器“卡死”故障的解決過程

晚上8點多突然收到zabbix報警,服務器負載高,IO負載高。看到報警信息馬上就猜到,老問題又出現了上次的方法沒能解決問題,故障回顧

故障背景:
系統:ubuntu 14.04
服務器:kvm虛擬機

故障現象:
1.系統存在大量僵死進程,kill -9殺不掉
2.系統IO負載很高
3.執行命令時,終端會卡死
4.reboot無法正常重啓服務器,只能殺虛擬機進程
5.系統日誌裏有以下信息 INFO: task jbd2/vda1-8:775 blocked for more than 120 seconds.
記錄一次服務器“卡死”故障的解決過程

上次出現這個問題是3天前,當時網上查閱資料說是將內存髒頁數據刷入磁盤時出現了問題,導致系統阻塞了很多其他進程,從而產生大量僵死進程,按照網上方法,修改調整內核參數:

vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

-------------------------------回顧到此結束--------------------------------

登陸服務器一看,果然還是這個問題,很顯然上次的內核參數調整沒能解決問題,接下來繼續分析,通過一番檢查有以下突破性新發現:
1.操作時使用tab補全命令會導致終端卡死,不使用tab則可以正常執行命令
2.一個核心的cpu 100%花在了IO等待上

第一個發現讓我想起了一次以前處理故障的經歷,/tmp目錄滿了,導致一使用tab補全命令就卡死,跟今天現象一樣,馬上檢查/tmp分區使用情況,du命令發現/tmp分區是掛載在一個單獨100G的硬盤上,只使用了60M,排除空間問題。接着嘗試touch /tmp/test測試分區的讀寫,問題出現了,終端卡死,/tmp分區無法讀寫,找到了問題突破口

爲什麼這個分區會無法讀寫呢,繼續排查,mount -l /tmp強制卸載分區然後重新掛載,問題依舊,/tmp無法讀寫。接着登陸虛擬機控制檯,查看塊獨立硬盤的信息,發現這塊獨立硬盤用的VirtIO模式,其他硬盤都是IDE模式,很可能問題出在這裏。於是新增了一個IDE的硬盤,替換了VirtIO硬盤,然後後重新掛載格式化並重新掛載到/tmp,故障處理告一段落,處理完到今天5天了,問題沒在出現,基本可以確定問題是出在虛擬硬盤的模式了。更深一層,爲什麼virtIO有問題IDE就沒問題,要後面繼續研究了

總結:
故障第一次出現時沒有足夠重視,沒有深入分析,直接搬用網上”解決方案“,導致故障第二次出現。網上資料很多,也很有用,但要結合實際情況取捨,遇到問題要能獨立思考並結合自己以前的經驗多分析,提高自己分析問題能力的同時讓自己的知識更加融會貫通

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