Kdump是Linux的内核崩溃转储机制,能在系统崩溃(如内核panic)时捕获内存信息,便于事后故障分析,该机制需要预留内存(称为crashkernel)来保存转储信息。如果您的Linux服务器内存较小,可参考本文档关闭kdump释放预留内存,提高内存的利用率。
重要 释放系统预留内存并关闭Kdump服务,在系统故障时可能无法收集内核崩溃信息,导致无法及时定位和修复内核相关的问题,从而影响服务器的稳定性,请您谨慎操作。 查看系统预留内存。 执行以下命令,确认系统是否已开启crashkernel。 如果返回结果中包括了 执行以下命令,查看系统预留内存大小。 回显信息类似如下所示,表示系统预留内存大小为201326592 B,即192 MiB。 释放系统预留内存并关闭Kdump服务。 Alibaba Cloud Linux/CentOS Ubuntu/Debian Alibaba Cloud Linux/CentOS Ubuntu/Debian Alibaba Cloud Linux/CentOS Ubuntu/Debian 执行以下命令,备份grub配置文件。 执行以下命令,删除 执行以下命令,更新grub配置。 执行以下命令,关闭Kdump服务并禁止开启自启动。 执行以下命令,重启系统以使更改生效。 验证结果。 Alibaba Cloud Linux/CentOS Ubuntu/Debian 执行以下命令,查看kdump状态。确认kdump状态为 执行以下命令,查看grub配置文件。 如果回显信息中不显示crashkernel配置,表示删除crashkernel配置已生效。 执行以下命令,查看预留内存大小。 如果回显信息显示操作步骤
cat /proc/cmdline
crashkernel选项,说明已开启crashkernel。
cat /sys/kernel/kexec_crash_size

sudo systemctl stop kdump
sudo systemctl disable kdump
sudo systemctl stop kdump-tools
sudo systemctl disable kdump-tools
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo update-grub
sudo grubby --update-kernel=ALL --remove-args="crashkernel"
sudo sed -i 's/crashkernel=[^[:space:]]*[[:space:]]*//g' /etc/default/grub
sudo cp /etc/default/grub /etc/default/grub.bak
crashkernel配置。sudo reboot
sudo systemctl status kdump

sudo systemctl status kdump-tools

inactive (dead),即 kdump 服务已停止运行。cat /proc/cmdline

cat /sys/kernel/kexec_crash_size
0,表示系统预留内存已释放。