要提高虚拟机性能,可以添加、更改或配置 CPU 资源。

启用 CPU 热添加

默认情况下,打开虚拟机电源后,无法将 CPU 资源添加到虚拟机。通过 CPU 热添加选项,可以为正在运行的虚拟机添加 CPU 资源。

符合下列条件。

  • 为获得最佳结果,请使用与 ESXi 5.0 或更高版本兼容的虚拟机。
  • 只有与 ESXi 5.0 或更高版本兼容的虚拟机才支持热添加多核虚拟 CPU。
  • 如果虚拟机的虚拟 CPU 不超过 128 个,则无法使用热添加将虚拟 CPU 的数量增加到超过 128 个。要将虚拟 CPU 的数量更改为超过此限制,必须先关闭虚拟机的电源。相比之下,如果虚拟机的虚拟 CPU 已超过 128 个,则可以使用热添加进一步将虚拟 CPU 的数量增加到最多 768 个。
  • 并非所有客户机操作系统都支持 CPU 热添加如果客户机操作系统不受支持,则可以停用这些设置。
  • 要在与 ESXi 4.x 及更高版本兼容的虚拟机上使用 CPU 热添加功能,请将每个插槽的内核数设置为 1。
  • 将 CPU 资源添加到运行中的虚拟机(已启用 CPU 热添加)会使连接到该虚拟机的所有 USB 直通设备断开连接并重新连接。
注: 如果 ESXi 主机的版本为 7.0 Update 2 及更低版本,则向具有 NVIDIA vGPU 的虚拟机热添加虚拟 CPU 要求 ESXi 主机具有可用的 vGPU 插槽。从 vSphere 7.0 Update 3 开始,源主机不需要具有可用的 vGPU 插槽。

前提条件

  • 确认虚拟机已进行如下配置。
    • 已安装最新版本的 VMware Tools。
    • 支持 CPU 热添加的客户机操作系统。
    • 虚拟机与 ESX/ESXi 4.x 或更高版本兼容。
    • 虚拟机已关闭电源。
  • 所需特权:虚拟机.配置.设置

过程

  1. 右键单击清单中的虚拟机,然后选择编辑设置
  2. 虚拟硬件选项卡上,展开 CPU,然后选择启用 CPU 热添加
  3. 单击确定

结果

现在,即使在虚拟机打开电源期间也可以添加 CPU 了。

更改虚拟 CPU 的数目

兼容 ESXi 7.0 Update 1 及更高版本的虚拟机最多可具有 768 个虚拟 CPU。可以在虚拟机关闭电源后更改虚拟 CPU 的数量。如果已启用虚拟 CPU 热添加,则可以在虚拟机运行时增加虚拟 CPU 的数量。

具有多核 CPU 支持和 ESXi 5.0 及更高版本兼容性的虚拟机支持虚拟 CPU 热添加。如果虚拟机已打开且已启用 CPU 热添加,可以将虚拟 CPU 热添加到正在运行的虚拟机。添加的 CPU 数量必须是每个插槽的内核数的倍数。

如果虚拟机的虚拟 CPU 不超过 128 个,则无法使用热添加进一步增加虚拟 CPU 的数量。要将虚拟 CPU 的数量更改为超过此限制,必须先关闭虚拟机的电源。相比之下,如果虚拟机的虚拟 CPU 已超过 128 个,则可以使用热添加进一步将虚拟 CPU 的数量增加到最多 768 个。

虚拟机可以拥有的最大虚拟 CPU 插槽数为 128。如果要为虚拟机配置 128 个以上的虚拟 CPU,必须使用多核虚拟 CPU。

重要说明: 当针对多核虚拟 CPU 设置配置虚拟机时,必须确保您的配置符合客户机操作系统 EULA 的要求。

前提条件

  • 如果未启用 CPU 热添加,请在添加虚拟 CPU 之前先关闭虚拟机电源。
  • 要热添加多核 CPU,请验证虚拟机是否与 ESXi 5.0 及更高版本兼容。
  • 验证您是否具有虚拟机.配置.更改 CPU 计数特权。

过程

  1. 右键单击清单中的虚拟机,然后选择编辑设置
  2. 虚拟硬件选项卡上,展开 CPU
  3. CPU 下拉菜单中,选择内核数。
  4. 每个插槽内核数下拉菜单中,选择每个插槽的内核数,然后单击确定

公开 VMware 硬件辅助的虚拟化

可以向客户机操作系统公开整个 CPU 虚拟化,以便需要硬件虚拟化的应用程序在不需要进行二进制转换或准虚拟化的情况下可以在虚拟机上运行。

前提条件

注: VMware 不支持在 ESXi 上运行第三方 Hypervisor,但明确定义和记录的功能除外。目前,这限制为 Microsoft Hyper-V,并且仅适用于 VBS,而不适用于将多个虚拟机虚拟化。

有关详细信息,请参见 VMware 知识库文章,网址为 https://kb.vmware.com/s/article/2009916

  • 确认虚拟机兼容性为 ESXi 5.1 和更高版本。
  • Intel Nehalem Generation (Xeon Core i7) 或更高版本处理器或者 AMD Opteron Generation 3 (Greyhound) 或更高版本处理器。
  • 确认在 BIOS 中启用了 Intel VT-x 或 AMD-V,以便可以使用硬件辅助的虚拟化。
  • 所需特权:在 vCenter Server 系统上设置 虚拟机.更改配置.更改设置

过程

  1. 右键单击清单中的虚拟机,然后选择编辑设置
  2. 虚拟硬件选项卡上,展开 CPU,然后选择向客户机操作系统公开硬件辅助的虚拟化
  3. 单击确定
    配置选项卡将刷新,并且“嵌套的 Hypervisor”CPU 选项显示 已启用

激活虚拟 CPU 性能计数器

您可在客户机操作系统中使用性能调优工具进行软件剖析。您可发现处理器性能问题并提高处理器性能。该功能对于优化或调试虚拟机中所运行软件的软件开发人员非常有用。

下列条件适用:
  • 如果启用了虚拟 CPU 性能计数器,则只能将虚拟机迁移到具有兼容 CPU 性能计数器的主机。
  • 如果 ESXi 主机 BIOS 使用性能计数器或者如果启用了 Fault Tolerance,则虚拟机可能无法使用某些虚拟性能计数器。
注: 如果虚拟机位于 EVC 集群中的 ESXi 主机上,则虚拟机创建或编辑不支持 CPU 计数器。您必须取消激活 CPU 性能计数器。
有关虚拟化模型特定寄存器 (MSR) 的列表,请参见 VMware 知识库文章,网址为: http://kb.vmware.com/kb/2030221

前提条件

  • 确认虚拟机兼容性为 ESXi 5.1 和更高版本。
  • 验证是否已关闭虚拟机。
  • 确认已安装 Intel Nehalem Generation (Xeon Core i7) 或更高版本的处理器或者 AMD Opteron Generation 3(“Greyhound”)或更高版本的处理器。
  • 确认在 BIOS 中启用了 Intel VT-x 或 AMD-V,以便可以使用硬件辅助的虚拟化。
  • 所需特权:虚拟机.更改配置.更改设置vCenter Server 系统上设置。

过程

  1. 右键单击清单中的虚拟机,然后选择编辑设置
  2. 虚拟硬件选项卡上,展开 CPU,然后选择启用虚拟化 CPU 性能计数器复选框。
  3. 单击确定

配置处理器调度关联性

通过调度关联性选项,可以精确控制虚拟机 CPU 在主机的物理核心之间分布的方式。如果启用了超线程,则该选项可支持超线程。通常,即使启用了超线程,ESXi 也能够有效地管理处理器调度。这些设置仅用于对关键虚拟机进行精确调整。

使用 CPU 关联性,可以向特定处理器分配虚拟机。通过此分配,您可以将虚拟机只分配给多处理器系统中特定的可用处理器。

对于 DRS 集群中的虚拟机或者仅有一个处理器内核而无超线程功能的主机,该设置不会显示。

有关 CPU 关联性的潜在问题,请参见 《vSphere 资源管理》文档。

前提条件

  • 验证是否已关闭虚拟机。
  • 确保虚拟机未驻留在 DRS 集群中。
  • 确保主机具有多个物理处理器核心。
  • 特权: 虚拟机.更改配置.更改资源

过程

  1. 右键单击清单中的虚拟机,然后选择编辑设置
  2. 虚拟硬件选项卡上,展开 CPU,然后在调度关联性文本框中输入含连字符的处理器范围的逗号分隔列表。
    例如,“0,4-7”表示 CPU 0、4、5、6 和 7 之间的关联性。选择所有处理器等效于选择无关联性。您必须至少提供与虚拟 CPU 数量相同的处理器关联性。
  3. 单击确定

更改 CPU/MMU 虚拟化设置

ESXi 可确定虚拟机是否需要硬件支持以进行虚拟化。ESXi 是基于处理器类型和虚拟机来确定的。在某些使用情况下,替代自动选择可提供更好的性能。

重要说明: 现代 x86 处理器可以完全支持虚拟化工作负载,无需软件协助。因此,“CPU/MMU 虚拟化”设置在 ESXi 6.7 及更高版本中已弃用。“CPU/MMU 虚拟化”设置仅适用于兼容 ESXi 6.5 及更高版本的虚拟机。

当虚拟机运行繁重的工作负载时,例如会显著影响整个系统性能的旁路转换缓冲 (TLB) 密集型工作负载,可以使用软件 MMU。但是,软件 MMU 的开销内存要求比硬件 MMU 高。因此,要支持软件 MMU,必须增加 VMkernel 中虚拟机限制支持的最大开销。

过程

  1. 右键单击清单中的虚拟机,然后选择编辑设置
  2. 虚拟硬件选项卡上,展开 CPU,并从 CPU/MMU 虚拟化下拉菜单中选择一个指令集。
    注: 要利用虚拟硬件版本 13 提供的所有功能,请使用默认硬件 MMU 设置。

    您不能更改与 ESXi 6.7 及更高版本兼容的虚拟机的“CPU/MMU 虚拟化”设置。

  3. 单击确定