什么是Kdump服务

Kdump服务,在系统故障时可以收集内核崩溃信息,及时定位和修复内核相关的问题

注意事项:释放系统预留内存并关闭Kdump服务,在系统故障时可能无法收集内核崩溃信息,导致无法及时定位和修复内核相关的问题,从而影响服务的连续性和稳定性,请您谨慎操作。

接下来我会以阿里云的轻量服务器为例。

相关文档

区分系统

tab CentOS / Alibaba Cloud Linux

备份grub配置文件

  • Alibaba Cloud Linux 2/CentOS
    1
    sudo cp /etc/default/grub /etc/default/grub.bak
  • Alibaba Cloud Linux 3
    1
    sudo cp /usr/share/alinux-base-setup/cmdline /usr/share/alinux-base-setup/cmdline.bak

添加crashkernel内容并保存grub配置文件

  • Alibaba Cloud Linux 2/CentOS
    1
    sudo vim /etc/default/grub

    GRUB_CMDLINE_LINUX行,添加crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-:384M
    修改完成后,按Esc键,输入:wq保存退出。

  • Alibaba Cloud Linux 3
    1
    sudo vim /usr/share/alinux-base-setup/cmdline

    添加crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-:384M内容。
    修改完成后,按Esc键,输入:wq保存退出。

更新grub配置

CentOS Stream 9/AlmaLinux 9/Rocky Linux 9 等基于 RHEL 9 的发行版中,请使用sudo grub2-mkconfig -o /boot/grub2/grub.cfg --update-bls-cmdline命令更新grub配置。

1
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

启用Kdump服务

1
sudo systemctl enable kdump

重启生效

1
sudo reboot

查看kdump状态与crashkernel参数,确认更改生效

  1. 执行以下命令,查看kdump状态。确认kdump状态为 inactive (dead),即 kdump 服务已停止运行。
    1
    sudo systemctl status kdump
  2. 执行以下命令,获取实例grub配置文件,确认crashkernel相关参数已删除。
    1
    cat /proc/cmdline

Ubuntu/Debian

备份grub配置文件

1
sudo cp /etc/default/grub /etc/default/grub.bak

添加crashkernel内容并保存grub配置文件

1
sudo vim /etc/default/grub

GRUB_CMDLINE_LINUX行添加crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-:384M内容。
修改完成后,按Esc键,输入:wq保存退出。

更新grub配置

1
sudo update-grub

启用Kdump服务

1
2
sudo systemctl enable kdump-tools
sudo systemctl start kdump-tools

重启生效

1
sudo reboot

查看kdump状态与crashkernel参数,确认更改生效

  1. 执行以下命令,查看kdump状态。确认kdump状态为 active (exited),即 kdump 服务已正常运行。。
    1
    sudo systemctl status kdump
  2. 执行以下命令,获取实例grub配置文件,确认crashkernel相关参数已正常添加。
    1
    cat /proc/cmdline