内存虚标?

有很多人疑惑,购买的云服务器运行内存虚标,官网配置说的内存和实际内存和不一样。
其实,是因为: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
2
sudo systemctl disable kdump
sudo systemctl stop 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=内容,删除crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-:384M
修改完成后,按Esc键,输入:wq保存退出。

更新grub配置

1
sudo update-grub

关闭Kdump服务

1
2
sudo systemctl disable kdump-tools
sudo systemctl stop kdump-tools

重启生效

1
sudo reboot

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

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