記一次生產數據庫服務器hang機故障排查,值得借鑒
概述
最近準備對MySQL做優化,修改配置文件后MySQL無法正常啟動,猜測是個別參數問題,不過后來發現服務器一直卡死,所以重啟了下服務器,也就是這個重啟服務器發現了一些很奇怪的現象。
現象
在服務器重啟后發現以下問題:執行一些基本命令會hang死。

而且發現MySQL進程無法kill掉

排查過程
1、查看磁盤、內存
可以發現磁盤、內存都正常

2、查看服務器整體情況
在用top命令的時候發現IO存在瓶頸,已經達到98%了

3、查看是否有異常用戶操作
好吧,都是我的IP地址,那應該是MySQL的問題導致了。

4、計劃用iotop進一步分析
本來想用iotop來分析具體是哪個進程影響的IO問題,但發現系統之前沒裝這工具..而目前IO滿了,用yum又裝不了這工具,只能選擇最后一個辦法了。
5、重啟大法
重啟前發現之前的配置文件是有點問題的,寫了兩個[mysqld],修改回正確的配置文件,禁止MySQL開機自動啟動,然后重啟(注意只能手動重啟)。
6、重啟后
重啟后手動重啟MySQL正常。


問題應該是在這:我之前配置文件不小心寫了兩個[mysqld],也就是配置文件錯誤了,但是服務器重啟了(MySQL進程是開機自動啟動的),然后MySQL進程就處于這種僵死狀態,導致磁盤IO一直是滿的,改好配置文件后手動重啟就可以了。