您的位置:首页 > 其它

内核崩溃kdump和crash分析工具

2017-04-22 11:45 465 查看
作者:【吴业亮】云计算开发工程师

博客:http://blog.csdn.net/wylfengyujiancheng

1、 关于kdump 和 crash

1)、kdump是一种kernel crash dump的机制,它可以在内核crash时保存系统的内存信息用于后续的分析。kdump是基于kexec的。

2)、crash是一个用于交互式地分析正在运行的Linux系统或者kernel crash后的core dump数据的工具。

2、在CentOS 7 中配置kdump

需要在kernel启动命令行参数中添加crashkernel参数,并启动kdump服务。一般设置为 crashkernel=auto 表示根据系统内存自动reserve一些内存给kernelcrash用,在x86_64系统中内存大于等于2GB时会reserve内存,最小保留内存计算方法是:160 MB + 2 bits for every 4 KB of RAM。kdump.service 相关的配置文件 /etc/kdump.conf 里面可以修改一些默认的配置,比如dump完成后的动作(默认是reboot)、dump文件存放的方式(本地目录、NFS、scp到另外服务器等)。

# systemctl start kdump
# systemctl enable kdump


3、测试kdump

用root权限执行如下命令,可以让kernel crash。

# echo 1 > /proc/sys/kernel/sysrq
# echo c > /proc/sysrq-trigger


kernel dump完成后,系统重启,进入到 /var/crash/ 目录下可以看到保存下来的crash时系统的内存数据文件。

4、用crash工具分析

安装对应的kernel-debuginfo软件包

# wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-common-x86_64-3.10.0-327.el7.x86_64.rpm # wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-3.10.0-327.el7.x86_64.rpm # yum local install *.rpm -y


执行crash命令即可进入交互式的分析:

# crash /var/crash/127.0.0.1-2017-04-18-22\:10\:42/vmcore /usr/lib/debug/lib/modules/3.10.0-327.el7.x86_64/vmlinux




log显示内核消息缓冲区



bt显示内核堆栈跟踪



ps显示系统中进程的状态



vm显示当前上下文的虚拟内存信息



file显示有关当前上下文的打开文件的信息



更多操作请执行help

参考:

https://access.redhat.com/documentation/en/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: