是否有理由给虚拟机一个二舍五入(2048MB,4096MB等)的内存?

标题几乎说明了一切,有没有给VM 2048MB的内存,而不是四舍五入到基地10和做2000MB的任何优势?

服务器中的物理内存是两倍的倍数,因此如果使用其他倍数,它将会均匀地分片。 SLAT可能会有一些令人难以置信的小改进,如果它们正确alignment的话。 否则不。

Hyper-V在内部以2MB块内部分配内存。 如果您的处理器支持二级地址转换(SLAT),则pipe理程序本身将使用2MB的页表条目以提高效率。对于closuresdynamic内存的任何虚拟机,这都是可能的。

除此之外,不,这并不重要。

只是为了澄清其他答案所说的话; 这里定义的限制基本上是针对你的虚拟机的软件,而不是客户。 也就是说,当你的客户操作系统请求一页内存时,它以定义的增量(即4KB)进行操作。 因此,如果将虚拟机的内存定义为4097KB,并且主机虚拟机使用的是4KB的页面大小,则可能会向虚拟机授予总计4100KB的RAM。

但是,如果客户操作系统使用1KB的页面大小,并且您的主机操作系统使用了4KB的页面大小,那么主机操作系统本质上会授予4KB的空间,其中只有1KB将会被使用 – 但是,记忆块。 所以你永远不会真的浪费任何可辨别的空间。

需要注意的是,主机操作系统和客户操作系统之间的alignment不是一个因素,除了最后一个“closures位”。

我怀疑它是一个传统问题,并将其与物理系统的build立方式联系起来。 物理系统有2个基本的内存(至less每个x86都有,这是真的),如果没有多less操作系统可能会期望这个内存pipe理的机会。

简而言之,它的确是因为虚拟机反映了一个真实的机器,而不是一个假想的机器。 不是一个非常技术性的答案,但我认为这是真正的答案

不是真的。 Hyper-Vdynamic内存将只分配系统使用的内容。 您分配的金额是启动值。 如果你不使用dynamic内存,我可以看到的唯一优势是更好地将物理内存与虚拟alignment。