跳转至

虚拟机内存显示差异说明

问题描述

虚拟机分配了 2GB 内存,但执行 free -h 命令显示只有 1.8GB。

原因分析

这是因为 Linux 系统启动时,内核会预留一部分内存用于自身运行和硬件操作。这部分预留内存不会出现在 free -h 显示的总量中。

内核预留内存的用途

项目 说明
内核代码和数据 内核镜像、模块、静态数据结构
页表 用于虚拟内存映射
DMA 区域 用于老式硬件的直接内存访问
其他内核保留 启动时的内存分配器预留

数值计算

2GB = 2048 MB
显示 1.8GB ≈ 1843 MB
差异约 200 MB (约 10%)

这个 10% 左右的预留比例是完全正常的。

验证方法

查看真实物理内存总量

使用 dmidecode 命令:

sudo dmidecode -t memory | grep Size

查看内核日志

dmesg | grep -i memory

总结

这是 Linux 内核的正常行为,不是问题。你分配的 2GB 物理内存都在使用,只是约 200MB 被内核预留,不会显示在 free 的统计中。