公共镜像中默认未开启kdump服务。若您需要实例在宕机时,生成core文件,并以此分析宕机原因,请参见以下步骤开启kdump服务。本步骤以公共镜像CentOS 7.2为例。实际操作时,请以您的操作系统为准。
1.设置core文件生成目录。
1)运行vim /etc/kdump.conf打开kdump配置文件。vim命令使用详情,请参见Vim教程。
2)设置path为core文件的生成目录。本示例中,在/var/crash目录下生成core文件,则path的设置如下。
path /var/crash
3)保存并关闭/etc/kdump.conf文件。
2.开启kdump服务。
根据操作系统对命令的支持情况,选择开启方式。本示例中,CentOS 7.2使用方法一开启kdump服务。
方法一: 依次运行以下命令开启kdump服务。
systemctl enable kdump.service
systemctl start kdump.service
方法二: 依次运行以下命令开启kdump服务。
chkconfig kdump on
service kdump start
3.运行以下命令模拟宕机。
echo c > /proc/sysrq-trigger
说明 运行该命令后,实例会与网络失去连接。您需要重新连接实例,完成后续操作。
4.分析core文件。
1)运行以下命令安装Crash分析工具。
yum install crash
2)下载debug-info安装包。
运行uname -r命令查看操作系统内核版本,下载相应版本的debug-info包。
kernel-debuginfo-common-x86_64-<内核版本>.rpm
kernel-debuginfo-<内核版本>.rpm
说明 不同CentOS版本的debug-info包下载地址有所不同。您可以通过CentOS官网查找对应版本软件包的下载地址,具体请参见CentOS debuginfo软件包。
本示例中,系统的内核版本为3.10.0-514.26.2.el7.x86_64,因此下载命令为:
wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-common-x86_64-3.10.0-514.26.2.el7.x86_64.rpm
wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-3.10.0-514.26.2.el7.x86_64.rpm
3)依次运行下列命令,安装debug-info包。
rpm -ivh kernel-debuginfo-common-x86_64-3.10.0-514.26.2.el7.x86_64.rpm
rpm -ivh kernel-debuginfo-3.10.0-514.26.2.el7.x86_64.rpm
4)依次运行以下命令使用Crash工具分析core文件。
cd <core文件的生成目录>
crash /usr/lib/debug/lib/modules/<内核版本号>/vmlinux vmcore
本示例中,core文件的生成目录为/var/crash/127.0.0.1-2019-07-08-15:52:25,内核版本号为3.10.0-514.26.2.el7.x86_64,因此运行的命令为:
cd /var/crash/127.0.0.1-2019-07-08-15:52:25
crash /usr/lib/debug/lib/modules/3.10.0-514.26.2.el7.x86_64/vmlinux vmcore
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。