有没有理由为虚拟机提供以2为基数的四舍五入的内存量(2048MB、4096MB等)?

有没有理由为虚拟机提供以2为基数的四舍五入的内存量(2048MB、4096MB等)?

标题几乎说明了一切,给虚拟机 2048MB 内存而不是四舍五入到十进制并设置 2000MB 有什么优势吗?

答案1

服务器中的物理内存是 2 的幂的倍数,因此如果您使用其他倍数,它将均匀切片。如果 SLAT 等也正确对齐,可能会有一些非常小的改进。否则不会。

答案2

Hyper-V 内部以 2MB 为单位分配内存。如果您的处理器支持二级地址转换 (SLAT),虚拟机管理程序本身将尽可能使用 2MB 页表条目以提高效率。对于几乎任何关闭动态内存的虚拟机来说,这都是可能的。

除此之外,没什么关系。

答案3

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

但是,如果客户操作系统使用 1KB 页面大小,而您的主机操作系统使用 4KB 页面大小,那么主机操作系统实际上会分配 4KB 空间,但其中只有 1KB 会被使用——但这超出了所有内存块。因此,您实际上永远不会浪费任何可察觉的空间。

需要注意的是,除了最后的“关闭位”之外,主机操作系统和客户操作系统之间的对齐在这里不是一个因素。

答案4

不是。Hyper-v 动态内存无论如何都只会分配系统使用的内存。您分配的内存量是启动值。如果您不使用动态内存,我能看到的唯一优势就是更好地将物理内存与虚拟内存对齐。

相关内容