Linux释放系统预留内存并关闭Kdump服务
内存虚标?
有很多人疑惑,购买的云服务器运行内存虚标,官网配置说的内存和实际内存和不一样。
其实,是因为:Kdump服务!!服务器的内核和系统也是占用内存的,需要预留出一定的空间,所以就默认启用Kdump服务占用了一部分
如果需要的话,可以根据Kdump服务
的利弊关系决定是否要将这部分内存释放出来。
什么是Kdump服务
Kdump服务,在系统故障时可以收集内核崩溃信息,及时定位和修复内核相关的问题
注意事项:释放系统预留内存并关闭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 /etc/default/grub /etc/default/grub.bak
删除crashkernel内容并保存grub配置文件
- Alibaba Cloud Linux 2/CentOS
1
sudo vim /etc/default/grub
在
GRUB_CMDLINE_LINUX
行找到crashkernel=内容
,删除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 disable kdump |
重启生效
1 | sudo reboot |
查看kdump状态与crashkernel参数,确认更改生效
- 执行以下命令,查看kdump状态。确认kdump状态为 inactive (dead),即 kdump 服务已停止运行。
1
sudo systemctl status kdump
- 执行以下命令,获取实例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=内容
,删除crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-:384M
。
修改完成后,按Esc
键,输入:wq
保存退出。

更新grub配置
1 | sudo update-grub |

关闭Kdump服务
1 | sudo systemctl disable kdump-tools |
重启生效
1 | sudo reboot |
查看kdump状态与crashkernel参数,确认更改生效
- 执行以下命令,查看kdump状态。确认kdump状态为 inactive (dead),即 kdump 服务已停止运行。
1
sudo systemctl status kdump
- 执行以下命令,获取实例grub配置文件,确认crashkernel相关参数已删除。
1
cat /proc/cmdline