記一次生產(chǎn)數(shù)據(jù)庫(kù)服務(wù)器hang機(jī)故障排查,值得借鑒
概述
最近準(zhǔn)備對(duì)MySQL做優(yōu)化,修改配置文件后MySQL無(wú)法正常啟動(dòng),猜測(cè)是個(gè)別參數(shù)問(wèn)題,不過(guò)后來(lái)發(fā)現(xiàn)服務(wù)器一直卡死,所以重啟了下服務(wù)器,也就是這個(gè)重啟服務(wù)器發(fā)現(xiàn)了一些很奇怪的現(xiàn)象。
現(xiàn)象
在服務(wù)器重啟后發(fā)現(xiàn)以下問(wèn)題:執(zhí)行一些基本命令會(huì)hang死。

而且發(fā)現(xiàn)MySQL進(jìn)程無(wú)法kill掉

排查過(guò)程
1、查看磁盤(pán)、內(nèi)存
可以發(fā)現(xiàn)磁盤(pán)、內(nèi)存都正常

2、查看服務(wù)器整體情況
在用top命令的時(shí)候發(fā)現(xiàn)IO存在瓶頸,已經(jīng)達(dá)到98%了

3、查看是否有異常用戶(hù)操作
好吧,都是我的IP地址,那應(yīng)該是MySQL的問(wèn)題導(dǎo)致了。

4、計(jì)劃用iotop進(jìn)一步分析
本來(lái)想用iotop來(lái)分析具體是哪個(gè)進(jìn)程影響的IO問(wèn)題,但發(fā)現(xiàn)系統(tǒng)之前沒(méi)裝這工具..而目前IO滿了,用yum又裝不了這工具,只能選擇最后一個(gè)辦法了。
5、重啟大法
重啟前發(fā)現(xiàn)之前的配置文件是有點(diǎn)問(wèn)題的,寫(xiě)了兩個(gè)[mysqld],修改回正確的配置文件,禁止MySQL開(kāi)機(jī)自動(dòng)啟動(dòng),然后重啟(注意只能手動(dòng)重啟)。
6、重啟后
重啟后手動(dòng)重啟MySQL正常。


問(wèn)題應(yīng)該是在這:我之前配置文件不小心寫(xiě)了兩個(gè)[mysqld],也就是配置文件錯(cuò)誤了,但是服務(wù)器重啟了(MySQL進(jìn)程是開(kāi)機(jī)自動(dòng)啟動(dòng)的),然后MySQL進(jìn)程就處于這種僵死狀態(tài),導(dǎo)致磁盤(pán)IO一直是滿的,改好配置文件后手動(dòng)重啟就可以了。