Hyper-V 处理器性能

虚拟化服务器可托管彼此隔离但共享基础硬件资源的多个虚拟机 (VM)。 处理器、内存和 I/O 设备已经过虚拟化。 将服务器合并到单台计算机上后,虚拟化可提高资源利用率和能源效率,并降低服务器的操作和维护成本。 本文可帮助你了解有关微调和提高 Hyper-V 性能的处理器性能注意事项。

虚拟机集成服务

虚拟机 (VM) 集成服务包括特定于 Hyper-V 的 I/O 设备已启用的驱动程序,与模拟设备相比,这大大降低了 I/O 的 CPU 开销。 在每个受支持的 VM 中安装最新版本的 VM 集成服务。 这些服务降低了来宾(从空闲来宾到频繁使用的来宾)的 CPU 使用率,同时提高了 I/O 吞吐量。 这是在运行 Hyper-V 的服务器中优化性能的第一步。 有关受支持来宾操作系统的列表,请参阅 Hyper-V 概述

虚拟处理器

应将具有非 CPU 密集型负载的 VM 配置为仅使用一个虚拟处理器。 此配置是必要的,因为与多个虚拟处理器相关的额外开销,例如来宾操作系统中的其他同步成本。 要了解有关 Hyper-V 中最大可配置组件的详细信息,请参阅规划 Windows Server 中的 Hyper-V 可扩展性

如果 VM 在峰值负载下需要多个 CPU 来进行处理,请增加虚拟处理器的数量。

后台活动

尽量减少空闲 VM 中的后台活动可释放其他 VM 占用的 CPU 周期。 Windows 来宾在空闲时在一个 CPU 中占用的量通常不到 1%。 下面是将 VM 的后台 CPU 使用率降至最低的最佳做法:

  • 安装最新版本的 VM 集成服务。

  • 通过“VM 设置”对话框移除模拟的网络适配器(使用特定于 Microsoft Hyper-V 的适配器)。

  • 删除未使用的设备(例如 CD-ROM 和 COM 端口),或断开其媒体连接。

  • 未使用 Windows 来宾操作系统时,将其保留在登录屏幕上,并禁用屏幕保护。

  • 查看默认启用的计划任务和服务。

  • 查看 Windows 事件跟踪 (ETW) 跟踪提供程序,这些提供程序通过运行 logman.exe query -ets 默认启用。

  • 改进服务器应用程序以减少周期性活动(例如计时器)。

  • 关闭主机和来宾操作系统上的服务器管理器。

  • 不要让 Hyper-V 管理器保持在运行状态,因为它会不断刷新 VM 的缩略图。

下面是在 VM 中配置 Windows 客户端版本来减少总 CPU 使用率的最佳做法:

  • 禁用 SuperFetch 和 Windows Search 等后台服务。

  • 禁用计划任务(例如计划的碎片整理)。

虚拟 NUMA

Windows Server 中的 Hyper-V 扩展了 VM 扩展限制,从而能够虚拟化大型纵向扩展工作负载。 创建大型 VM 时,通常会使用主机系统上多个 NUMA 节点的内存。 在该类型的 VM 配置中,如果未从同一 NUMA 节点分配虚拟处理器和内存,工作负载的性能可能会很差。 性能会受到负面影响,因为工作负载无法利用 NUMA 优化。 要了解有关 Hyper-V 中最大可配置组件的详细信息,请参阅规划 Windows Server 中的 Hyper-V 可扩展性

在 Windows Server 中,Hyper-V 向 VM 提供虚拟 NUMA 拓扑。 在默认情况下,将优化此虚拟 NUMA 拓扑以匹配基础主计算机的 NUMA 拓扑。 通过在 VM 中公开虚拟 NUMA 拓扑,让来宾操作系统及其中运行的任何 NUMA 感知应用程序能够利用 NUMA 性能优化,就像在物理计算机上运行时的行为一样。

从工作负载的角度来看,虚拟 NUMA 和物理 NUMA 之间没有区别。 在 VM 中,当工作负载为数据分配本地内存,并在同一 NUMA 节点中访问该数据时,将在基础物理系统上实现快速的本地内存访问。 可成功避免由于远程内存访问而引起的性能损失。 只有 NUMA 感知应用程序才能从 vNUMA 中获益。

Microsoft SQL Server 就是一个 NUMA 感知应用程序。 有关详细信息,请参阅了解非一致性内存访问

无法同时使用虚拟 NUMA 和动态内存功能。 启用了动态内存的 VM 实际上只有一个虚拟 NUMA 节点。 无论虚拟 NUMA 设置如何,都不会向 VM 提供任何 NUMA 拓扑。

有关虚拟 NUMA 的详细信息,请参阅 Hyper-V 虚拟 NUMA 概述

以下一些文章可帮助你了解有关 Hyper-V 的详细信息。