故障排除 Linux操作系统死机处理方法总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

故障排除Linux操作系统死机处理方法总结

通常在出现系统崩溃后,大家会担心再次出现故障,但是发现系统各日志中并没有记录到任何死机前后的信息,无法分析故障原因,认为已经无药可救。但是,实际上,Linux 有多种机制来保证发生系统崩溃后,可以获取有价值的信息用以分析问题。确定是硬件故障,还是应用程序bug 导致的。

Linux 中,有如下几种方法来获取各种崩溃时产生的信息。

1.Core dump

Core dump 通常用来调试应用程序错误,当某些应用程序运行出现异常崩溃时,可以开启系统的core dump 功能,来得到一个程序崩溃时的内存信息,用来分析崩溃原因:

在/etc/profile里加上(或者修改)一条:

ulimit -c 0

运行命令:sysctl -w "kernel.core_name_format=/coredump/%n.core"

该命令意思是指core文件放在/coredump目录下,文件名是进程名+.core

2.Diskdump

diskdump工具提供了在单机上创建和采集vmcore(kernel dump)的能力,而无须使用网络。当内核本身出现崩溃的时候,当前的内存和CPU状态以及相关的信息都会被保存到一个支持diskdump的磁盘上的保留分区上。在下一次重新启动的时候,当系统重新启动,diskdump的初始化脚本会从保留分区中读取保存的信息并创建一个vcore文件,然后这个文件被再次存放到/var/crash/目录下,文件名为127.0.0.1-

如下是一个配置HP SCSI 设备上启用diskdump 的过程,如果不是HP SCSI 设备(即设备名为/dev/sdX的形式),则无须执行第三、四两个步骤。但需要在第一步前先执行命令:modprobe

diskdump

第一步:编辑/etc/sysconfig/diskdump文件,将一个空白分区的设备名填入后保存退出,例如:

DEVICE=/dev/cciss/c0d0p2

第二步:初使化dump 设备

#service diskdump initialformat

警告:该分区的所以数据会丢失。

第三步:使用cciss_dump 模块替换当前的cciss 模块:

在/etc/modprobe.conf 找到如下行:

alias scsi_hostadapter cciss

修改为:

alias scsi_hostadapter cciss_dump

再增加一行:

options cciss_dump dump_drive=1

注:假设diskdump文件中配置的为/dev/cciss/c0d[#a]p[#b], 请设置为:options cciss_dump dump_drive=[#a]

第四步:重建initrd 文件:

#mv /boot/initrd-`uname -r`.img /boot/initrd-`uname -r`.img.old

#mkinitrd /boot/initrd-`uname -r`.img `uname -r`

第五步:设置diskdump 服务能够开机自启动:

# chkconfig diskdump on

dump

如果使用红旗DC4.0 或 3.0 版本系统,是不能支持diskdump 的,可以利用netdu mp 来达到输出vmcore 的目的。但是Netdump要求至少有一个服务器以及任意数目的客户端。服务器用来接收客户端死机时的信息,客户端是经常死机的机器。

(一)服务器配置:

(1).检验netdump服务器是否安装完毕:

rpm -q netdump-server

如果未安装,请在光盘RedFlag/RPMS/ 目录中找到netdump-server 打头的软件包,执行命令:

rpm -ivh netdump-server-x.x.x.rpm (x为版本号)

进行安装。

(2).服务器包安装后,用命令:

passwd netdump

更改用户的密码.

(3).打开服务:

chkconfig netdump-server on

(4).运行服务器:

service netdump-server start

(二)客户端配置:

(1).校验客户端是否已安装

rpm -q netdump

如果未安装,在光盘RedFlag/RPMS/ 目录中找到netdum 打头的软件包,执行命令:

rpm -ivh netdump-x.x.x.rpm (x为版本号)

安装.

(2).编辑文件/etc/sysconfig/netdump,添加如下行:

DEV=eth0

NETDUMPADDR=172.16.81.182

NETDUMPMACADDR=00:0C:29:79:F4:E0

172.16.81.182指netdump 服务器地址。

(3).运行下面的命令,出现提示符时输入密码:

service netdump propagate

(4).打开客户端:

chkconfig netdump on

(5).运行客户端:

service netdump start

(6).测试

为了测试netdump的配置是否正确,在netdump客户机上做下面操作:

cp /usr/share/doc/netdump-xxxxxx/crash.c .

gcc -DKERNEL -DMODULE -I/lib/modules/$(uname -r)/build/include -c crash.c insmod ./crash.o

相关文档
最新文档