对于每个正在运行的虚拟机,系统会为虚拟机的预留(如果有)和虚拟化开销预留物理内存。

所有虚拟机的已配置内存大小总量可能超过了主机上的可用物理内存量。但是,这并不一定意味着内存已过载。当所有虚拟机的组合工作内存占用超过主机内存大小的组合工作内存占用时,内存已过载。

由于 ESXi 主机使用内存管理技术,虚拟机可以使用的虚拟内存大于主机上可用的物理内存。例如,您有一个内存为 2 GB 的主机,其上运行四个虚拟机,每个虚拟机的内存为 1 GB。这种情况下,内存会过载。例如,如果所有 4 个虚拟机均闲置,则组合消耗内存可能远低于 2GB。但是,如果所有 4GB 虚拟机均主动消耗内存,则其内存占用可能超过 2GB,并且 ESXi 主机将过载。

过载有一定的意义,因为通常情况下有些虚拟机负载较轻,而有些虚拟机负载较重,相对活动水平会随着时间的推移而有所差异。

为了改善内存利用率,ESXi 主机将闲置虚拟机的内存转移给需要更多内存的虚拟机。使用“预留”或“份额”参数可优先向重要的虚拟机分配内存。如果这部分内存未使用,可以用于其他虚拟机。ESXi 实施了多种机制(如虚拟增长、内存共享、内存压缩和交换)来提供合理性能,即使主机尚未严重内存过载。

如果虚拟机在内存过载环境下消耗了所有可预留内存,ESXi 主机可能会内存不足。虽然已打开电源的虚拟机不受影响,但新虚拟机可能会由于内存不足而无法打开电源。

注:

所有虚拟机内存开销也被视为预留。

此外,ESXi 主机上默认还会启用内存压缩,以在内存过载时提高虚拟机性能,如内存压缩中所述。