4GB 变成了 3.8GB?一招解决服务器内存变少的问题

4GB 变成了 3.8GB?一招解决服务器内存变少的问题

云服务器的内存为什么会变少?你购买了一台标称 4GB 内存的服务器,但当你登录系统一看,却发现实际可用内存只有 3.8GB 左右。别急,这不是云服务商在玩猫腻,而是一个叫做 kdump 的服务在发挥作用。

内核转储服务(kdump)的功与过

kdump 是 Linux 系统的一项强大功能,用于在发生内核崩溃时收集详细信息,以便更好地进行故障诊断。为了保证这项服务能够高效运行,一些内存空间会被保留下来。因此,你看到的 3.8GB 其实是 4GB 内存中被 kdump 服务“保留”了一小部分。

发行版差异

不同的 Linux 发行版对 kdump 的处理方式略有不同。比如,Red Hat Enterprise Linux (RHEL) 和其衍生的 CentOS 通常默认启用 kdump 服务,而 Ubuntu 则默认关闭。这就是为什么有些小伙伴看到的内存“缩水”情况不一样的原因。

  • Red Hat Enterprise Linux (RHEL): RHEL 通常默认启用 kdump 服务。可以通过检查 /etc/kdump.conf 文件来确认配置。
  • CentOS: CentOS 是基于 RHEL 的,因此通常也默认启用 kdump。
  • Ubuntu: 在 Ubuntu 中,默认情况下是禁用 kdump 的。如果需要使用 kdump,你可以手动安装和配置。

另外就是云服务商一般都提供安装镜像,有些云服务商会修改系统的默认值。

检查 Kdump 是否启用:

要确定 Kdump 是否已启用,可以运行以下命令:

cat /proc/cmdline | grep crashkernel

如果命令有输出,即表示 Kdump 已启用。

查看 Kdump 内存占用情况:

想要知道 Kdump 使用了多少内存,可以检查 /proc/iomem 文件,找到含有 “Crash kernel” 的行,其中记录了 Kdump 使用的内存范围。

示例:

grep "Crash kernel" /proc/iomem

以上命令将显示关于 Kdump 内存使用情况的信息,如果无内容输出,说明内存占用为零。

如何关闭 kdump 服务

如果你认为自己并不需要 kdump 服务,可以通过以下步骤关闭它:

  1. 打开终端或 SSH 连接到你的服务器。
  2. 使用文本编辑器打开 /etc/default/grub 文件。可以使用 vinano 或其他你熟悉的编辑器。
   sudo vi /etc/default/grub
  1. 在该文件中找到包含 GRUB_CMDLINE_LINUX 的行,然后在引号内添加 crashkernel=0M,如下所示:
   GRUB_CMDLINE_LINUX="crashkernel=0M"
  1. 保存并关闭文件。
  2. 更新 GRUB 配置:
   sudo update-grub
  1. 重新启动服务器:
   sudo reboot

关闭 kdump 后的影响

关闭 kdump 服务可能会降低系统在发生内核崩溃时的诊断能力,因为无法收集详细的崩溃信息。如果你对系统的稳定性有较高要求,并且希望能够更好地解决潜在的问题,建议保留 kdump 服务。

然而,如果你更注重内存的实际利用,而不太关心详细的崩溃信息,关闭 kdump 可以帮助你释放一些内存空间,使得你的服务器内存更加充实。

希望这些信息对你更好地管理云服务器内存提供了一些帮助。如有其他问题,随时向站长帮提问!

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容