是否有理由为VM分配2个整数的内存(2048MB,4096MB等)?


Answers:


10

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


页面大部分为4 KiB或2 MiB-即使对1234 MiB进行切片也没有真正的问题,有吗?
poige'4

1
@poige据我所知,是的,没问题...我们真的需要一个内外都知道SLAT(et alii)的人来提供明确的答案。
克里斯·S

13

Hyper-V在内部以2MB的块分配内存。如果可能,如果您的处理器支持第二级地址转换(SLAT),则虚拟机管理程序本身将使用2MB页面表条目来提高效率。几乎所有关闭了动态内存的VM都可以使用此功能。

除此之外,没有关系。


7

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

但是,如果客户机OS使用1KB页面大小,而您的主机OS使用4KB页面大小,则主机OS本质上将授予4KB的空间,其中仅将使用1KB的空间-但这不大块的内存。因此,您永远不会真正浪费任何可识别的空间。

要注意的是,除了最后一个“关闭位”之外,主机OS和来宾OS之间的对齐不是这里的因素。


在某些情况下,情况并非如此:例如,VM软件可以保留全部请求的RAM量(加上它对视频卡和其他杂项需求的需求),或者在使用嵌套分页/扩展页表硬件支持时-guest虚拟机使用CPU硬件有效地管理内存的物理页。同样,保留4097KB的内存很可能会分配4100KB的物理RAM,尽管来宾操作系统实际上只能寻址4097KB。
Goyuix 2012年

2
我看不出您说的话与我的回答有出入。您能详细说明一下吗?
Andrew M.

那可能是您的意图,但是在阅读您的答案时,因为“您将基本上无法使用额外的1KB”-我试图澄清,即使OS的3/4可以从理论上说来宾操作系统也可以使用该RAM。物理页面可能不会被触及。您的回答对我来说不太清楚。我还尝试提供一些可能会对这些决定产生影响的关键字/技术。页面对齐问题只是需要考虑的权衡问题的一部分,我认为可以通过具体提及相关影响来改善答案。
Goyuix 2012年

啊,我知道哪里出了问题。实际上,这就是我的设想,但是我在各种修订中都必须摆脱它。我已对其进行更新以澄清这一点。:)
Andrew M.

3

我怀疑这是一个传统问题,并将其与物理系统的构建方式保持一致。物理系统的内存是以2为基数的(至少每做一次x86,这是对的),并且即使不是很多操作系统,在管理内存方面也有希望。

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


1

并不是的。Hyper-v动态内存将仅分配系统将使用的内容。您分配的数量是启动值。如果您不使用动态内存,那么我看到的唯一好处就是可以更好地将物理内存与虚拟内存对齐。



-1。如果没有配置,则Hyper-V没有动态内存。猜猜是什么-在某些情况下,不使用它是有意义的(例如,分配需要时间,因此数据库服务器立即希望全部使用)。因此,一般性的答案是无关紧要的,而且实际上是根本没有要求的。
TomTom 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.