虚拟服务器内存不是 2 的幂/倍数

虚拟服务器内存不是 2 的幂/倍数

在以前(虚拟化之前),内存是 2 的幂/倍数,因为内存就是这么制造的。如今,我们创建没有实际物理内存的虚拟服务器,人们仍然使用 2 的幂/倍数来创建它们。

是否有理由继续这样做(表演或其他)或者这只是人们习惯做的事情?

答案1

您的问题的答案通常更多地在于客户操作系统而不是所使用的虚拟机管理程序。多年来,Windows 并不真正关心内存是否以任何特定方式布局,除了一些要求看起来像 PC,以便引导加载程序可以工作。Linux 也同样灵活。

以 Hyper-V 为例,它以 2MB 为单位为客户操作系统分配内存。这样做只是为了将处理器中的页表硬件设置为使用 2MB 页面,这样效率更高,因为它为页表使用更少的内存,处理器中的 TLB 条目也更少。

答案2

没有理由继续这种趋势,至少对于 VMware 来说是这样……CPU 也是如此。我毫不羞愧地说,我有一些 3-CPU 虚拟机

答案3

我怀疑每个 VM 产品仍使用四个字节的倍数。而不是两个。

请注意,3 MB 等于 3072 KB,是 2 加 4 的倍数(2x1536 或 4x768),尽管当你看到这个值时并不能立即明白这一点3

(至于为什么是2或4字节的倍数:内存访问通常为1、2或4字节宽。)

相关内容