Kdump是Linux的内核崩溃转储机制,能在系统崩溃(如内核panic)时捕获内存信息,便于事后故障分析,该机制需要预留内存(称为crashkernel)来保存转储信息。如果您的Linux服务器内存较小,可参考本文档关闭kdump释放预留内存,提高内存的利用率。
操作步骤
重要
释放系统预留内存并关闭Kdump服务,在系统故障时可能无法收集内核崩溃信息,导致无法及时定位和修复内核相关的问题,从而影响服务器的稳定性,请您谨慎操作。
查看系统预留内存。
执行以下命令,确认系统是否已开启crashkernel。
cat /proc/cmdline
如果返回结果中包括了
crashkernel
选项,说明已开启crashkernel。执行以下命令,查看系统预留内存大小。
cat /sys/kernel/kexec_crash_size
回显信息类似如下所示,表示系统预留内存大小为201326592 B,即192 MiB。
释放系统预留内存并关闭Kdump服务。
执行以下命令,备份grub配置文件。
sudo cp /etc/default/grub /etc/default/grub.bak
执行以下命令,删除
crashkernel
配置。sudo sed -i 's/crashkernel=[^[:space:]]*[[:space:]]*//g' /etc/default/grub
执行以下命令,更新grub配置。
Alibaba Cloud Linux/CentOS
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Ubuntu/Debian
sudo update-grub
执行以下命令,关闭Kdump服务并禁止开启自启动。
Alibaba Cloud Linux/CentOS
sudo systemctl stop kdump sudo systemctl disable kdump
Ubuntu/Debian
sudo systemctl stop kdump-tools sudo systemctl disable kdump-tools
执行以下命令,重启系统以使更改生效。
sudo reboot
验证结果。
执行以下命令,查看kdump状态。确认kdump状态为
inactive (dead)
,即kdump
服务已停止运行。Alibaba Cloud Linux/CentOS
sudo systemctl status kdump
Ubuntu/Debian
sudo systemctl status kdump-tools
执行以下命令,查看grub配置文件。
cat /proc/cmdline
如果回显信息中不显示crashkernel配置,表示删除crashkernel配置已生效。
执行以下命令,查看预留内存大小。
cat /sys/kernel/kexec_crash_size
如果回显信息显示
0
,表示系统预留内存已释放。
该文章对您有帮助吗?