《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > Linux系統死機的軟硬件問題分析
Linux系統死機的軟硬件問題分析
電子發(fā)燒友
摘要: 雖然平時運行沒有問題,,但可能在高負載的使用中就會出現不可預料的故障了,。特別是Linux系統在某些應用上,是可以把硬件的性能發(fā)揮到極限的,,但這樣的硬件運行Windows可能是沒有問題的,。
Abstract:
Key words :

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

  一,、硬件問題

  可以考慮分析以下幾點:

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

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

  2,、確認電源供電充足

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

  3,、使用memtest86檢查內存狀態(tài)

  4、恢復BIOS到默認狀態(tài)

  對于服務器,,可以使用自帶的監(jiān)測工具進行測試,,也是一個不錯的排錯方法。

  二,、軟件問題

  如果已經基本排除硬件問題,,那我們就必須考慮從軟件上去獲得死機狀態(tài)的系統信息了。

  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、萬一鍵盤也不幸死掉了,,那我們只能采用串口方式,,把系統信息發(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"

  重啟服務器;進行測試:

  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看看,,或更換核心再試)

  系統設置(恢復到缺省狀態(tài),,關閉防火墻等)

此內容為AET網站原創(chuàng),,未經授權禁止轉載。