linux 死機日誌分析

來源:互聯網
上載者:User


系統出現死機,一般分為兩種情況:一是硬體問題;二是軟體問題。

一、硬體問題

可以考慮分析以下幾點:

1、不要超頻CPU,如果已經超頻的先回複到原來的頻率

雖然平時運行沒有問題,但可能在高負載的使用中就會出現不可預料的故障了。特別是linux系統在某些應用上,是可以把硬體的效能發揮到極限的,但這樣的硬體運行Windows可能是沒有問題的。

2、確認電源供電充足

必須確保在高負載的狀態下,電源可以滿足負載。

3、使用memtest86檢查記憶體狀態

4、恢複BIOS到預設狀態

對於伺服器,可以使用內建的監測工具進行測試,也是一個不錯的排錯方法。

二、軟體問題

如果已經基本排除硬體問題,那我們就必須考慮從軟體上去獲得死機狀態的系統資訊了。

1、運氣足夠好的話,系統死機不一定是完全死掉(此時鍵盤可能還能響應),那我們就可以使用Sysrq大法。

前提是我們必須先開啟sysrq功能:

#echo "1" > /proc/sys/kernel/sysrq

#setterm -blank

這樣,當系統出現問題的時候,我們可以使用:

引用

Alt+Sysrq-T 獲得進程系統堆棧資訊

Alt+Sysrq-M 獲得記憶體配置資訊

Alt+Sysrq-W 獲得當前寄存器資訊

更多的熱鍵可以參考系統上的/usr/src/linux/Documentaion/sysrq.txt

其中,setterm -blank可以關閉字元下定時黑屏保護,方便記錄螢幕資訊。

2、為了讓螢幕顯示更多的核心調試資訊,可以修改控制台的顯示模式為80x25,在/boot/grub/menu.lst中對應的kernel一行最後,增加vga=0x305,如:

引用

kernel /boot/vmlinuz-2.4.21-9.30AXsmp ro root=/LABEL=/1 vga=0x305

3、萬一鍵盤也不幸死掉了,那我們只能採用串口方式,把系統資訊發送到另一台系統上,方法:

修改/boot/grub/menu.lst檔案,在kernel一行最後增加核心參數"console=ttyS0 console=tty1",如:

引用

kernel /boot/grub/vmlinuz-2.4.21-9.30AXsmp ro root=/LABEL=/1 console=ttyS0 console=tty1

然後,修改/etc/sysconfig/syslog,加入klogd選項"-c 7",如:

引用

KLOGD_OPTIONS="-x -c 7"

重啟伺服器;進行測試:

1)使用串口直連線串連客戶機和伺服器,在客戶機上運行:

cat /dev/ttyS0

伺服器上運行:

echo hi > /dev/ttyS0

如果客戶機有"hi"輸出即可。

2)伺服器上運行:

echo w > /proc/sysrq-trigger

看看客戶機上是否有相應的核心資訊輸出

3)伺服器上運行:

modprobe loop

看看客戶機上是否有相應的核心資訊輸出

如果測試都通過的話,那麼在客戶機上運行:

cat /dev/ttyS0 | tee /tmp/result

當死機出現的時候,我們就可以從客戶機上看到需要的核心資訊了(查看/tmp/result)。

三、總結

一般造成Linux系統死機的原因有:

系統硬體問題(SCSI卡,主板,RAID卡,HBA卡,網卡,硬碟等)

外圍硬體問題(網路等)

軟體問題(系統、應用軟體)

驅動bug(找新的驅動)

核心系統bug(到LKML看看,或更換核心再試)

系統設定(恢複到預設狀態,關閉防火牆等)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

Tags Index: