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参数值auto为128M。​
说明​
  • 请将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,请输入exit或q并按回车键确认。​
  • ​​​
最近更新时间:2025.02.28 11:35:58
这个页面对您有帮助吗?
有用
有用
无用
无用