当内存过载时,Ballooning是正常操作的一部分。Ballooning的发生并不一定表明基础设施资源匮乏。使用Balloon驱动程序使访客可以放弃未使用的物理内存页面。事实上,Ballooning可能表明您从主机内存中获得了额外的价值。
但是,如果虚拟化导致guest 虚拟机提供它实际需要的内存,则可能会由于客户机操作系统老化而出现性能问题。
但是请注意,这是相当罕见的,因为客户机操作系统将始终尽可能地为Balloon驱动程序分配已释放的内存,从而避免任何客户机操作系统交换。
在vSphere Web Client中,使用Memory Balloon计数器监控主机的Balloon活动。此计数器表示主机上VM的Balloon驱动程序声明的内存总量。Balloon驱动程序声明的内存可供其他VM使用。同样,这不是性能问题,但它表示主机从具有大量活动内存的那些需要较少的VM中获取内存。如果主机Ballooning,请检查交换速率计数器(内存交换速率和内存交换速率),这可能表示性能问题,但这并不意味着您目前遇到性能问题。这意味着主机上未分配的pRAM已降至预定义阈值以下。
在绝大多数VM都具有超大vRAM,大多数vRAM --> pRAM映射只保留了零空闲页面,并且这些将通过膨胀释放而不会取代实际数据并且将来可能会出现性能不佳的风险。
如何操作
可以通过vSphere Web Client 在“ 性能图表”中监视Balloon活动。在这种情况下,您应该遵循的计数器是以千字节为单位的Balloon平均值。在监视ESXi的Ballooning活动时,应选择相同的计数器。
要使用适用于单个VM的vSphere客户端监控虚拟增长活动,请执行以下步骤:
打开vSphere Web Client。登录vCenter Server。在主屏幕上,选择主机和群集。选择memory-hungry VM。单击“ 监视器”选项卡,然后单击“ 性能”选项卡,再单击“ 高级”。将视图更改为内存。单击图表选项。选择Active, Ballooned Memory, 和消耗计数器。单击“ 确定”。现在,如果您的VM上存在ballooning活动,您应该会看到类似于以下图像的内容:
在此示例中,您可以看到此VM(Memhog-1)正在将其非活动内存页面释放到主机内存。大小为1167968 KB。
要使用vSphere客户端监控ESXi的ballooning活动,请按照下列步骤操作:
打开vSphere Web Client。登录vCenter Server。在主屏幕上,选择主机和群集。选择性能较差的ESXi主机。转到“ 监视器”选项卡,然后转到“ 性能”选项卡,最后单击“ 高级”。将视图切换到内存。选择图表选项。选择的Active, Ballooned Memory和消耗计数器。单击“ 确定”。现在,如果ESXi主机上存在ballooning活动,您应该会看到与此类似的内容:
在此示例中,您可以看到此ESXi主机参与了虚拟增长,其VM正在主动释放页面。
Memory ballooning是由内存密集型VM的过度使用引起的。然而,这仅仅是指示性的,这意味着Ballooning的存在并不总是说它是一个性能问题。Ballooning是一种更有效地使用pRAM的有效方法,通常不会对性能产生负面影响。
为了最大限度地提高ESXi从VM恢复空闲内存的能力,应在所有VM上启用Balloon驱动程序。永远不要故意在VM上禁用Balloon驱动程序。禁用Balloon驱动程序可能会导致意外的性能问题。