Board logo

标题: Linux系统死机的软硬件问题分析 [打印本页]

作者: samwalton    时间: 2013-9-28 16:00     标题: Linux系统死机的软硬件问题分析

系统出现死机,一般分为两种情况:一是硬件问题;二是软件问题。
  一、硬件问题
  可以考虑分析以下几点:
  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
  看看客户机上是否有相应的内核信息输出




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0