Ubuntu Server 中实际内存与物理内存不相等的问题

Posted HintLee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ubuntu Server 中实际内存与物理内存不相等的问题相关的知识,希望对你有一定的参考价值。

记录

来源 v2ex,提到了一个平时不是很起眼的问题,Ubuntu Server 中系统默认会占用 128M 内存,用于 CVM 内部的 kdump 服务。

科普

  1. 查看 CVM 所拥有的物理内存
    通过 dmidecode 命令查看底层硬件信息
  2. 为什么 free 看到的内存会少了?
    free 里面看到的是伙伴系统管理的内存,这部分内存不包括 OS 内核一些基本数据结构的消耗以及内核的一些预留。内核预留内存,可以在 CVM 启动后,通过命令查看 dmesg | grep -i memory
  3. Ubuntu 这里预留的 128M 内存,用于了 CVM 内部的 kdump 服务
  4. 什么是 kdump 服务呢?为什么开启 kdump 呢?
    当 OS 内核出现了故障(如内核 bug 导致),kdump 服务会协助生产一个 dump 文件,类似于应用程序的 coredump。开启 kdump 的目的,是为了在内核出现 bug 时,提供足够信息,便于客户后续内核 bug 问题定位分析
  5. 如何关闭 kdump
    1. 修改 grub 启动参数,关闭 kdump 预留。在 /etc/default/grub.d/kexec-tools.cfg 和 /etc/default/grub 配置文件中,将“ crashkernel=XXX ”这样的配置参数去掉,然后执行 update-grub2 更新 grub 引导文件
    2. 关闭 kdump 服务 systemctl disable kdump-tools
    3. 重启 CVM,可以看到内存变多了
  6. 为什么同样是 1G 的内存,centos 看起来要多一些呢?
    在 1G 内存下,centos 系统默认没有开启 kdump,没有预留到内存,所以会多一些,而 Ubuntu 默认开启了 kdump




以上是关于Ubuntu Server 中实际内存与物理内存不相等的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何修改ubuntu虚拟机内存大小

server2008物理内存使用82%导致程序内存错误

Windows Server2008 R2 内存占用问题

vmware 虚拟机实际使用的内存超过分配的内存在使用啥?

ubuntu 物理内存使用达100%,怎样排查

ubuntu 物理内存使用达100%,怎样排查