系統出現死機,一般分為兩種情況:一是硬件問(wèn)題;二是軟件問(wèn)題。 一、硬件問(wèn)題 可以考慮分析以下幾點(diǎn): 1、不要超頻CPU,如果已經(jīng)超頻的先回復到原來(lái)的頻率 雖然平時(shí)運行沒(méi)有問(wèn)題,但可能在高負載的使用中就會(huì )出現不可預料的故障了。特別是Linux系統在某些應用上,是可以把硬件的性能發(fā)揮到極限的,但這樣的硬件運行Windows可能是沒(méi)有問(wèn)題的。 2、確認電源供電充足 必須確保在高負載的狀態(tài)下,電源可以滿(mǎn)足負載。 3、使用memtest86檢查內存狀態(tài) 4、恢復BIOS到默認狀態(tài) 對于服務(wù)器,可以使用自帶的監測工具進(jìn)行測試,也是一個(gè)不錯的排錯方法。 二、軟件問(wèn)題 如果已經(jīng)基本排除硬件問(wèn)題,那我們就必須考慮從軟件上去獲得死機狀態(tài)的系統信息了。 1、運氣足夠好的話(huà),系統死機不一定是完全死掉(此時(shí)鍵盤(pán)可能還能響應),那我們就可以使用Sysrq大法。 前提是我們必須先打開(kāi)sysrq功能: #echo "1" > /proc/sys/kernel/sysrq #setterm-blank 這樣,當系統出現問(wèn)題的時(shí)候,我們可以使用: 引用 Alt+Sysrq-T 獲得進(jìn)程系統堆棧信息 Alt+Sysrq-M 獲得內存分配信息 Alt+Sysrq-W 獲得當前寄存器信息 更多的熱鍵可以參考系統上的/usr/src/linux/Documentaion/sysrq.txt 其中,setterm -blank可以關(guān)閉字符下定時(shí)黑屏保護,方便記錄屏幕信息。 2、為了讓屏幕顯示更多的內核調試信息,可以修改控制臺的顯示模式為80x25,在/boot/grub/menu.lst中對應的kernel一行最后,增加vga=0x305,如: 引用 kernel /boot/vmlinuz-2.4.21-9.30AXsmp ro root="/LABEL"=/1 vga="0x305" 3、萬(wàn)一鍵盤(pán)也不幸死掉了,那我們只能采用串口方式,把系統信息發(fā)送到另一臺系統上,方法: 修改/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" 重啟服務(wù)器;進(jìn)行測試: 1)使用串口直連線(xiàn)連接客戶(hù)機和服務(wù)器,在客戶(hù)機上運行: cat /dev/ttyS0 服務(wù)器上運行: echo hi > /dev/ttyS0 如果客戶(hù)機有"hi"輸出即可。 2)服務(wù)器上運行: echo w > /proc/sysrq-trigger 看看客戶(hù)機上是否有相應的內核信息輸出 3)服務(wù)器上運行: modprobe loop 看看客戶(hù)機上是否有相應的內核信息輸出 如果測試都通過(guò)的話(huà),那么在客戶(hù)機上運行: cat /dev/ttyS0 | tee /tmp/result 當死機出現的時(shí)候,我們就可以從客戶(hù)機上看到需要的內核信息了(查看/tmp/result)。 三、總結 一般造成Linux系統死機的原因有: 系統硬件問(wèn)題(SCSI卡,主板,RAID卡,HBA卡,網(wǎng)卡,硬盤(pán)等) 外圍硬件問(wèn)題(網(wǎng)絡(luò )等) 軟件問(wèn)題(系統、應用軟件) 驅動(dòng)bug(找新的驅動(dòng)) 核心系統bug(到LKML看看,或更換核心再試) 系統設置(恢復到缺省狀態(tài),關(guān)閉防火墻等) |