Hyper-V 处理器性能

虚拟机集成服务

虚拟机Integration Services为特定于 Hyper-V 的 I/O 设备提供启用的驱动程序,与仿真设备相比,这大大减少了 I/O 的 CPU 开销。 应在每个受支持的虚拟机中安装Integration Services虚拟机的最新版本。 这些服务减少了来宾(从空闲来宾到使用率高来宾)的 CPU 使用率,并提高了 I/O 吞吐量。 这是优化运行 Hyper-V 的服务器的性能的第一步。 有关支持的来宾操作系统的列表,请参阅 Hyper-V 概述

虚拟处理器

虚拟机中的 Hyper-V Windows Server 2016每个虚拟机最多支持 240 个虚拟处理器。 具有非 CPU 密集型负载的虚拟机应配置为使用一个虚拟处理器。 这是因为与多个虚拟处理器相关的额外开销,例如来宾操作系统中的额外同步成本。

如果虚拟机在峰值负载下需要处理多个 CPU,则增加虚拟处理器的数量。

后台活动

最小化空闲虚拟机中的后台活动会释放 CPU 周期,其他虚拟机可在其他位置使用 CPU 周期。 Windows来宾在空闲时通常使用不到一个 CPU 的 1%。 下面是将虚拟机的后台 CPU 使用率最小化的几个最佳做法:

  • 安装最新版本的虚拟机Integration Services。

  • 通过虚拟机设置对话框删除模拟网络适配器, (使用Microsoft Hyper-V适配器) 。

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

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

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

  • 通过运行logman.exe 查询 -ets 查看默认启用的 ETW 跟踪提供程序

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

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

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

下面是在虚拟机中配置客户端版本 Windows以减少总体 CPU 使用率的其他最佳做法:

  • 禁用后台服务,例如 SuperFetch 和 Windows搜索。

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

虚拟 NUMA

若要实现对大型扩展工作负荷的虚拟化,Hyper-V Windows Server 2016扩展的虚拟机缩放限制。 单个虚拟机可分配最多 240 个虚拟处理器和 12 TB 内存。 创建此类大型虚拟机时,可能会利用主机系统上多个 NUMA 节点的内存。 在此类虚拟机配置中,如果未从同一 NUMA 节点分配虚拟处理器和内存,则由于无法利用 NUMA 优化,工作负荷的性能可能不佳。

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

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

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

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

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

其他参考