虚拟机内存和 CPU 资源限制的影响
search cancel

虚拟机内存和 CPU 资源限制的影响

book

Article ID: 341040

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

免责声明:本文为 Impact of virtual machine memory and CPU resource limits (1033115) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

本文提供有关虚拟机 CPU 和内存资源限制的影响的信息。即使 ESX 主机未完全利用,虚拟机的性能也会较差。发生膨胀和 vmkernel 交换行为。

Symptoms:


Environment

VMware ESX 4.1.x
VMware ESXi 4.0.x Embedded
VMware ESXi 3.5.x Embedded
VMware vSphere ESXi 5.5
VMware ESX Server 3.5.x
VMware ESX 4.0.x
VMware ESXi 4.1.x Installable
VMware ESX Server 3.0.x
VMware ESXi 4.0.x Installable
VMware ESXi 4.1.x Embedded
VMware vSphere ESXi 5.1
VMware ESXi 3.5.x Installable
VMware vSphere ESXi 5.0

Resolution

虚拟机 CPU 和内存资源限制会人为地对虚拟机施加约束。


内存限制

如果设置的内存限制低于虚拟机的置备内存,则该限制将被视为直接分配给此特定虚拟机的物理内存量上限。客户机操作系统并不知晓这一限制,它会将内存管理选项优化为已分配内存大小。
达到或超过此限制后,客户机操作系统仍可请求新页面,但由于此限制,VMkernel 将不允许客户机直接占用更多的物理内存,并且会认为虚拟机正在争用资源。可通过内存回收技术使虚拟机能够占用所请求的内存。
根据虚拟机请求的页面数量,在最坏的情况下,VMkernel 可能会采用 VMkernel 交换的方法来完成请求。VMkernel 会首先尝试通过扩展气球驱动程序来让客户机内存管理器决定要换出的页面,从而回收内存。在 ESX 4.1 中,VMkernel 还会在换出内存页面之前尝试压缩这些内存页面。
您可以通过运行esxtop并查看MCTLSZd、MCTLTGT、SWCUR和SWTGT以及CACHEUSD来验证内存限制所产生的影响。
有关使用 esxtop 的详细信息,请参见 Interpreting esxtop Statistics

CPU 限制

如果在虚拟机资源设置中设置了 CPU 限制,则当虚拟机用尽其分配的 CPU 资源时,系统会有意保留该虚拟机,而防止其调度给 PCPU。无论 CPU 利用率如何,都会发生此问题。如果将此限制设置为 500MHz,则虚拟机会从 PCPU 重新调度,并且必须等待一段时间,直到允许再次调度它为止。此时,虚拟机性能可能会下降。
注意:对于 SMP 虚拟机,所有 vCPU 的总和不能超过指定的限制。例如,如果某个虚拟机有 4 个 vCPU,限制为 1200MHz,并且各个 vCPU 的负载相同,则每个 vCPU 的最大限制为 300MHz。
您可以通过运行 esxtop 并查看 %RDY和%MLMTD 来验证 CPU 限制所产生的影响。
有关使用 esxtop 的详细信息,请参见 Interpreting esxtop Statistics


Additional Information

您也可以仅在主机过量使用时通过份额来限制某些虚拟机的资源使用情况。
您可以使用限制事先模拟资源过量使用情况,或者动态约束虚拟机的资源使用(例如,当恶意虚拟机的资源利用率过高,从而对主机和其他虚拟机造成负面影响时)。

有关内存管理工作原理的详细信息:

如需了解相关信息,请参见:
Impact of virtual machine memory and CPU resource limits