非活动 Windows 虚拟机的高 CPU 利用率
search cancel

非活动 Windows 虚拟机的高 CPU 利用率

book

Article ID: 343489

calendar_today

Updated On:

Products

VMware VMware Desktop Hypervisor VMware vSphere ESXi

Issue/Introduction

Symptoms:
免责声明:本文为 High CPU utilization of inactive Windows virtual machines (1077) 的翻译版本。尽管我们会不断努力为本文提供最佳翻译版本,但本地化的内容可能会过时。有关最新内容,请参见英文版本。

当 Windows 虚拟机处于非活动状态时服务器利用率较高。


Environment

VMware Player 5.x (Linux)
VMware ESXi 4.0.x Embedded
VMware ESX Server 1.5.x
VMware ESX Server 2.0.x
VMware vSphere ESXi 5.0
VMware Workstation 6.x (Linux)
VMware Fusion 6.x
VMware Player 4.x (Linux)
VMware Workstation 5.x (Linux)
VMware Fusion 3.x
VMware GSX Server 2.x (Windows)
VMware Fusion 5.x
VMware Workstation 11.x (for Linux)
VMware GSX Server 2.x (Linux)
VMware ESX Server 3.0.x
VMware Workstation 8.x (Windows)
VMware Fusion 1.x
VMware Fusion 4.x
VMware Player 7.x (Windows)
VMware Workstation 6.x (Windows)
VMware ESX 4.0.x
VMware Workstation 10.x (Windows)
VMware ESXi 4.0.x Installable
VMware Player 3.x (Linux)
VMware ESX Server 2.1.x
VMware Player 5.x (Windows)
VMware Fusion 2.x
VMware Workstation 9.x (Linux)
VMware Workstation 11.x (for Windows)
VMware Workstation 4.x (Linux)
VMware Workstation 8.x (Linux)
VMware Fusion 7.x
VMware Player 6.x (Windows)
VMware GSX Server 3.x (Linux)
VMware Workstation 10.x (Linux)
VMware Player Pro 7.x (Windows)
VMware Workstation 4.x (Windows)
VMware GSX Server 3.x (Windows)
VMware Workstation 7.x (Windows)
VMware Player 6.x (Linux)
VMware Workstation 5.x (Windows)
VMware Player Pro 7.x (Linux)
VMware Workstation 9.x (Windows)
VMware Player 4.x (Windows)
VMware Player 7.x (Linux)
VMware ESX Server 2.5.x
VMware ACE 1.0.x
VMware Player 3.x (Windows )
VMware Workstation 7.x (Linux)

Resolution

当物理机或虚拟机处于空闲状态时,其操作系统会发出停止指令或重复执行空闲循环。

  • 当空闲虚拟机执行停止指令时,它会停止处理所有指令,并要求服务器的物理 CPU 上无循环。 这是虚拟机的预期行为,并不会引起性能问题。
  • 当空闲虚拟机执行其空闲循环时,它将积极执行基础物理处理器上运行的指令。 在这种情况下,客户机操作系统中的性能工具会显示不活动的操作系统,但服务器上的 CPU 会得到充分利用。

当您尝试将虚拟处理器添加到虚拟机时,经常会发生空闲循环行为。 有关详细信息,请参见 vSphere Virtual Machine Administration Guide 的“CPU 虚拟机配置”部分。

对于运行 Windows 操作系统的虚拟机,如果安装了不正确的 HAL(硬件抽象层),则客户机操作系统会始终处于空闲循环状态,而不是停止状态。 配置 2 个或更多 vCPU 的虚拟机应与多处理器或 SMP HAL 一起运行。 配置 1 个 vCPU 的虚拟机应与单处理器 HAL 一起运行。

要确定虚拟机正在使用哪个 HAL 以及您为 HAL 运行的 vCPU 数量是否正确,请执行以下操作:

注意: Windows Server 2008 及更高版本检测到 HAL 正在引导,且不需要更改。

  1. 右键单击我的电脑图标,然后单击属性
  2. 单击硬件选项卡。
  3. 单击设备管理器选项卡。
  4. 双击计算机图标,查看当前加载的 HAL。
  5. 在 vSphere 或 VMware Infrastructure 客户端中,单击虚拟机,然后单击摘要选项卡,查看已配置的 vCPU 的数量。

如果存在下列情况,则您的配置正确无误:

  • 您具有一个 vCPU,且您的虚拟机操作系统针对单处理器 ACPI 进行了配置。
  • 您的虚拟机操作系统针对 2 个或更多 vCPU 进行了配置,且正在与多处理器 ACPI 一起运行。
注意: Microsoft 在 Windows Server 2003 中不支持将 HAL 从多处理器降级为单处理器,VMware 也不提供此支持。 有关详细信息,请参见 Cannot Select MPS Uniprocessor or ACPI Uniprocessor HAL
您可以将处理器添加到在 ESX 2.x 或更高版本以及 Workstation 5.5 或更高版本下创建的虚拟机,但您必须更新客户机操作系统中的 Windows HAL。 这适用于您运行 Windows 2000 客户机操作系统的情况。
有关在下列虚拟机中添加处理器的详细信息:

注意: 即使安装了正确的 HAL,某些客户机操作系统也会比其他系统更积极地停止运行。 当系统处于非活动状态时,某些客户机操作系统可能会在一段时间内处于空闲循环状态,然后发出停止指令,而其他系统可能会立即停止。 通常,停止前处于空闲循环状态的操作系统可与多个处理器一起运行。


注意: 截至 2015 年 8 月 25 日,上述链接正确无误。 如果您发现链接已损坏,请针对本文提供反馈,VMware 员工会根据需要更新本文。