起因是我发现阿里云服务器买2G内存版本,但实际到手只有1.6G;买1G,实际到手只有0.6G。系统的确会预留内存,但这预留的量也太离谱了吧?
于是我就研究了一下,然后发现是阿里云服务器会自动开启kdump。kdump这玩意,对我们普通人来说几乎算是没用,那玩意是给企业级大项目保险用的。所以可以直接关掉。,而且还设置了一个较高的值,所以吃掉了256M内存(至于另外的150M?那是正常的预留占用,理论上虽然也能减少,但是不懂最好别动,我们这次只释放这完全用不上的256M)。
经过实际测试,这能够直接释放256M的内存,1.6G直接变1.85G,非常棒。
我用的是debian13.5,指令如下:
# Debian/Ubuntu 等发行版
# 暂停kdump
systemctl stop kdump-tools
# 禁用kdump
systemctl disable kdump-tools
# 完全删除kdump
apt remove --purge kdump-tools crash kexec-tools
# 编辑文件,彻底移除干净
vi /etc/default/grub:
[-] crashkernel=0M-2G:0M,2G-4G:192M,4G-16G:256M,16G-64G:384M,64G-512G:512M,512G-:1G
[-] crash_kexec_post_notifiers=1
# 更新配置
update-grub
# 重启服务器
reboot这段指令实测有用。
至于其他版本的linux发行版,我使用AI给出了如下指令,但我并没有测试,所以可用性未知:
# Red Hat/CentOS/RHEL等发行版
# 暂停kdump
systemctl stop kdump
# 禁用kdump
systemctl disable kdump
# 完全删除kdump
yum remove kexec-tools
# 或者使用 dnf(RHEL 8+/Fedora)
# dnf remove kexec-tools
# 编辑文件,彻底移除干净
vi /etc/default/grub
[-] crashkernel=auto
[-] crashkernel=0M-2G:0M,2G-4G:192M,4G-16G:256M,16G-64G:384M,64G-512G:512M,512G-:1G
[-] crash_kexec_post_notifiers=1
# 更新 GRUB 配置
# BIOS 系统使用:
grub2-mkconfig -o /boot/grub2/grub.cfg
# UEFI 系统使用:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
# 重启服务器
reboot
# 来自deepseek-v4-pro本地部署大模型