You need to enable JavaScript to run this app.
文档中心
云服务器

云服务器

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