为什么 VirtualBox 配置的内存与虚拟机内的可用内存不同?

为什么 VirtualBox 配置的内存与虚拟机内的可用内存不同?

我无法找出 VirtualBox 机器设置中设置的值与MemTotal中显示的精确值之间的可靠转换/proc/meminfo

一些测试值

Configured(M)  /proc/meminfo (K)
1024           1008560
2048           2040752
4096           4039168
6000           5958144
7000           6965768
8096           8069636

尝试线性拟合,让我明白997*x-17133

使用默认 vram 可以轻松解释偏移量,但该拟合中的 ~1% 错误让我感到困惑。

有关于非线性从何而来的信息吗?

答案1

MemTotal 是 定义 作为:

总可用 RAM(即物理 RAM 减去一些保留位和内核二进制代码)

结果是 MemTotal 可能会发生变化,因为它不显示内核二进制文件本身在内存中使用的内存。模块可以根据需要加载和卸载,并可能动态分配内存,这些内存可能会变得碎片化并增长。

“丢失”的内存是内核本身。可以通过减少内核来减少内存,但坦率地说,这样做不值得,而且会影响性​​能。

相关内容