我已经看过几次了,我不明白发生了什么事情
我分配了一个Windows来宾200演出的RAM – 不保留。
现在看看客人操作系统显示它只使用约2演出的RAM。
但是,ESXi已经为其分配了200个RAM(主机现在正在生成低内存警报)! Windows只使用2个演出,为什么ESXi授予虚拟机全部200个演出?
这是Windows的情况下需要更多的RAM,然后使用? 我怎样才能解决这个问题?
从这里引用:
A host allocates the memory specified by the Limit parameter to each virtual machine, **unless memory is overcommitted** (emphasis mine). ESXi never allocates more memory to a virtual machine than its specified physical memory size. [...] When memory is overcommitted, each virtual machine is allocated an amount of memory somewhere between what is specified by Reservation and what is specified by Limit. The amount of memory granted to a virtual machine above its reservation usually varies with the current memory load.
因此,除非主机需要比实际存储的内存更多的内存以满足其上运行的所有虚拟机的需求,否则即使未保留,它也会高兴地将所有请求的内存分配给每个虚拟机。 但是,如果发生过度使用,主机将回收部分内存以释放其他VM; 在这种情况下,尽可能多的内存将按照负载需求回收,直到达到每个虚拟机的预留音量。 如果即使在将每个虚拟机分配的内存数量降低到预留数量之后,启动另一台虚拟机所需的内存也无法满足,则不会启动。 当然,如果一个虚拟机的内存降到预留的数量,这对于虚拟机不能正常运行,就会出现滞后和/或错误。
假设您有300 GB的内存,并且有两个虚拟机,其中每个都有200 GB的限制。 当你开始第一个,它会得到完整的200 GB的。 当你启动第二个主机时,主机将尝试完成这两个请求,但是由于它没有400 GB的可用空间,因此它将降低到给每个VM 150 GB。 然后,根据这些虚拟机的实际负载,内存可以进一步移动:如果虚拟机尝试使用180 GB,而另一个坐在20 GB,则主机将从第二个虚拟机移动另外30个GB到第一个虚拟机一。
当然,如果两台虚拟机都尝试使用所有的200 GB,主机就会开始交换。 这是您添加更多内存或将某个虚拟机移动到其他位置的线索。