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

在过去的时代(虚拟化之前),内存的功率/倍数是2,因为这是内存制造的方式。 现在我们创build的虚拟服务器没有真实的物理内存,人们仍然使用2的倍数/倍数来创build虚拟服务器。

是否有任何理由继续这样做(performance或其他)或者这是人们所做的事情,因为这是他们习惯的?

您的问题的答案通常更多地位于guest虚拟机操作系统,而不是所使用的虚拟机pipe理程序。 Windows多年来一直没有真正关心内存是否以任何特定的方式布置,除了像PC那样对其有一些要求外,这样引导加载程序就可以工作。 Linux同样灵活。

例如,Hyper-V以2MB块为内存分配给客户操作系统。 这只是为了使处理器中的页面表硬件可以设置为使用2MB页面,这样更有效率,因为它使用更less的页表内存和更less的处理器内TLB表项。

没有理由继续这种趋势,至less对于VMware来说…… CPU也一样。 我不惭愧地说我有一些3-CPU的虚拟机在那里。

我怀疑每个虚拟机产品仍然使用四个字节的倍数。 不是两个。

请注意,3 MB是3072 KB,即2和4(2×1536或4×768)的倍数,尽pipe在查看值3时不会立即清除。

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