- 文档首页
云服务器
云服务器ECS
最佳实践
镜像
在Linux操作系统中开启Kdump服务
在Linux操作系统中开启Kdump服务
您可以在Linux操作系统的云服务器实例中开启Kdump,方便您在实例内核发生崩溃时快速定位崩溃原因。
本文以CentOS 7.9操作系统为例,介绍安装、配置及开启Kdump流程。
注意
- 开启Kdump会占用一部分操作系统的内存、磁盘空间,可能会对系统性能产生一定影响。
- 不同Linux操作系统开启Kdump方式不同,请查看其官方文档:
什么是Kdump?
Kdump是一种基于kexec的内核崩溃转储技术。当Linux系统内核发生崩溃(例如由于硬件故障、软件错误、驱动程序问题等导致系统无法正常运行)时,Kdump能够捕获内核崩溃时的内存状态信息,并将这些信息保存到磁盘上,维护人员可以根据Kdump转储文件分析、定位内核崩溃原因。了解更多。 操作步骤
yum install crash kexec-tools makedumpfile -y
- 按i键进入编辑模式,在GRUB_CMDLINE_LINUX中修改crashkernel参数值auto为128M。
说明
- 请将128M替换为您期望为崩溃转储(Kdump)预留的内存大小。
- 若GRUB_CMDLINE_LINUX行中没有crashkernel参数,请自行添加。
-
- 按esc键退出编辑,输入:wq按回车键,保存并退出文件。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
- path /var/crash:请将/var/crash替换为您期望的Kdump文件存放目录,本文保持默认。
- core_collector makedumpfile -l -message-level 1 -d 31:请添加-c参数,压缩Kdump文件,减少磁盘占用。
- default reboot:新增该行,表示生成Kdump后,重启操作系统。
-
- 按esc键退出编辑,输入:wq按回车键,保存并退出文件。
systemctl start kdump.service
systemctl enable kdump.service
systemctl status kdump.service
-
- 依次执行如下命令,手动触发内核崩溃,验证Kdump是否可用。
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
- 若Kdump正常运行,系统将自动重启,并在您指定的Kdump文件存放目录(本文为/var/crash)下生成如下图所示内容。
-
- 若Kdump未正常运行,请根据前文检查Kdump是否正确安装、配置。
后续步骤
您可以通过crash工具,读取Kdump文件的重要内容,分析内核崩溃原因。
-
- 前往CentOS官方镜像站,获取与实例内核版本相同的kernel-debuginfo-common、kernel-debuginfo两个RPM包的下载链接。
-
-
- 执行如下命令,下载kernel-debuginfo-common包。
wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-common-x86_64-3.10.0-1160.102.1.el7.x86_64.rpm
说明
请将wget命令后的链接替换为实际RPM包下载链接。
- 执行如下命令,安装kernel-debuginfo-common包。
rpm -ivh kernel-debuginfo-common-x86_64-3.10.0-1160.102.1.el7.x86_64.rpm
说明
请将kernel-debuginfo-common-x86_64-3.10.0-1160.102.1.el7.x86_64.rpm替换为实际下载的RPM包名称。
- 执行如下命令,下载kernel-debuginfo包。
wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-3.10.0-1160.102.1.el7.x86_64.rpm
说明
请将wget命令后的链接替换为实际RPM包下载链接。
- 执行如下命令,安装kernel-debuginfo包。
rpm -ivh kernel-debuginfo-3.10.0-1160.102.1.el7.x86_64.rpm
说明
请将kernel-debuginfo-3.10.0-1160.102.1.el7.x86_64.rpm替换为实际下载的RPM包名称。
- 执行如下命令,查看crash版本,验证是否成功安装crash。
-
- 执行如下命令,即可进入crash命令行页面,查看Kdump文件信息。
crash /usr/lib/debug/lib/modules/$(uname -r)/vmlinux /var/crash/<timestamp>/vmcore
说明
请将<timestamp>替换为生成Kdump文件的时间戳。
-
- crash提供了多种命令,帮助您快速提取Kdump文件中的关键信息。了解更多。
-
- 如需退出crash交互模式并停止crash,请输入exit或q并按回车键确认。
-
最近更新时间:2025.02.28 11:35:58