清单:优化 Hyper-V 上的性能

在 Hyper-V 虚拟机上运行BizTalk Server和/或SQL Server实例 (具有BizTalk Server数据库的) 时,请注意以下注意事项。

将 110%–125% 的 CPU 和磁盘资源分配给 Hyper-V 虚拟机

计划将 110% 到 125% 的 CPU 资源和 105% - 物理硬件解决方案所需的 110% 磁盘资源分配给用于解决方案的 Hyper-V 虚拟机。 通过配置具有其他资源的 Hyper-V 虚拟机,可确保它可以提供与物理硬件相同的性能,同时容纳 Hyper-V 虚拟化技术所需的任何开销。

步骤 参考
限定BizTalk Server解决方案的硬件要求。 - 按照BizTalk Server操作指南的“规划BizTalk Server环境”部分中的指导,https://go.microsoft.com/fwlink/?LinkId=122399确定解决方案的硬件要求。
- 若要确定解决方案所需的 BizTalk 服务器的版本和数量范围,请查看“规划BizTalk Server层”https://go.microsoft.com/fwlink/?LinkId=122401中所述BizTalk Server规划注意事项。
- 若要确定解决方案所需的SQL Server计算机的版本号和数量,请查看“规划数据库层”中所述的数据库规划注意事项,查看https://go.microsoft.com/fwlink/?LinkId=122402“在 Hyper-V 环境中运行SQL Server的性能开销”部分的“在 Hyper-V 环境中运行SQL Server 2008 的最佳做法和性能注意事项”白皮书,https://go.microsoft.com/fwlink/?LinkId=144622.
- 若要完成开发、测试、过渡和生产环境的规划,请查看“ https://go.microsoft.com/fwlink/?LinkId=122403规划开发、测试、过渡和生产环境”。
确定BizTalk Server解决方案的硬件要求范围后,请计划尽可能配置具有 110% – 125% 的 CPU 和磁盘资源的 Hyper-V 计算机。 例如,如果解决方案使用的物理BizTalk Server计算机的硬件要求确定为 2GB RAM、在 2GHZ 上运行的双核 CPU 和 2x 500 GB 物理磁盘,那么理想情况下,解决方案使用的 Hyper-V 虚拟机将配置 2 个或更多运行 >= 2.2 GHZ 的虚拟处理器,并且通常通过添加齿轮或使用更快的磁盘来 (更快的物理磁盘) 。

优化 Hyper-V 性能

使用以下常规准则配置 Hyper-V 以实现最佳性能。

步骤 参考
应用性能优化虚拟化服务器的建议指南。 注意:对于测试BizTalk Server虚拟化性能中所述的测试方案,应用的配置选项在“物理基础结构特定”和“测试方案概述”主题的“虚拟化特定”部分中进行了说明。 “适用于虚拟化服务器的性能优化指南”部分,其中提供了https://go.microsoft.com/fwlink/?LinkID=202087“适用于 Windows Server 2008 R2 的性能优化指南”文档。
关闭未使用的任何虚拟机连接窗口。 在 Hyper-V 管理器中双击虚拟机名称时, (显示的虚拟机连接窗口) 使用其他可能利用的资源。
关闭或最小化 Hyper-V 管理器。 Hyper-V 管理器通过持续轮询每个正在运行的虚拟机来消耗资源,以便 CPU 利用率和运行时间。 关闭或最小化 Hyper-V 管理器会释放这些资源。

优化 Hyper-V 环境中的磁盘、内存、网络和处理器的性能

使用以下准则优化 Hyper-V 虚拟环境中的磁盘、内存、网络和处理器的性能。

优化处理器性能

遵循以下准则优化 Hyper-V 虚拟环境中运行的来宾操作系统的处理器性能:

  • 将虚拟处理器的 1 到 1 分配配置为可用的逻辑处理器,以便获得最佳性能 - 运行 CPU 密集型应用程序时,最佳配置是来宾操作系统中虚拟处理器的 1 比 1 比, () 主机操作系统可用的逻辑处理器。 任何其他配置(如 2:1 或 1:2)效率较低。 下图演示了来宾操作系统中虚拟处理器内核的 1 到 1 分配, () 主机操作系统可用的逻辑处理器:

    One to One Physical to Virtual Processor Ratio 虚拟与逻辑处理器比率

  • 请注意不同来宾操作系统的虚拟处理器限制并相应地进行计划 - Hyper-V 虚拟机中运行的来宾操作系统可用的处理器核心数可能会影响托管应用程序的整体性能。 因此,应考虑在 Hyper-V 虚拟机上安装哪个来宾操作系统,以托管托管BizTalk Server数据库的BizTalk Server和/或SQL Server实例 () 。 Hyper-V 适用于指定的来宾操作系统的以下虚拟处理器数:

操作系统 虚拟处理器限制
Windows Server 2008 R2。 Windows Server 2008 R2 的所有版本仅 64 位。 4
Windows Server 2008 SP2 64 位 4
Windows Server 2008 SP2 32 位 4
Windows 7 64 位 4
Windows 7 32 位 4
64 位 Windows Vista 2
Windows Vista 32 位 2

注意

有关 Hyper-V 上支持的来宾操作系统的详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkID=118347

优化磁盘性能

遵循以下准则优化 Hyper-V 虚拟环境中运行的来宾操作系统的磁盘性能:

步骤 参考
使用固定大小的虚拟硬盘 (VHD) 选项配置与 Hyper-V 虚拟机一起使用的虚拟磁盘。 固定大小的 VHD 提供接近物理磁盘的性能,以及群集支持和快照磁盘支持等功能的灵活性。 Hyper-V 环境中的磁盘存储可通过虚拟 IDE 控制器或虚拟 SCSI 控制器进行访问。 与以前版本的 Microsoft 虚拟化技术不同,在访问虚拟硬盘时,使用虚拟 IDE 控制器或虚拟 SCSI 控制器没有性能差异。 以下磁盘存储选项可用于 Hyper-V 环境中:

- 固定大小磁盘 - 固定大小的虚拟硬盘 (VHD) 是基于创建时定义的最大磁盘大小在物理磁盘上预先分配的数据块之一。 例如,如果创建 100 GB 固定大小的 VHD,Hyper-V 除了创建新的 VHD 时所需的 VHD 标头和页脚所需的开销外,还会分配所有 100 GB 的数据块存储。
- 动态扩展磁盘 - 动态扩展的 VHD 是初始虚拟硬盘不包含任何数据块的虚拟硬盘。 而是动态分配空间,因为数据写入 VHD,最大大小是创建 VHD 时指定的最大大小。 例如,100 GB 动态扩展磁盘最初仅包含 VHD 标头,并且需要小于 2 MB 的物理存储空间。 由于虚拟机将新数据写入动态扩展的 VHD,因此将额外物理数据块以 2 MB 增量分配给 VHD 文件,最大为 100 GB。
- 差异磁盘 - 差异磁盘是一种与“父”VHD 关联的动态扩展 VHD 文件的特殊类型。 在此父/子存储拓扑中,父磁盘保持不变,并且只对“子”差异磁盘执行的任何写入操作。 首先针对差异磁盘检查任何读取操作,以确定更新的内容是否已写入差异磁盘;如果内容不在差异磁盘中,则从父 VHD 读取内容。 差异磁盘对于需要维护特定基线配置的方案非常有用,并且想要轻松测试,然后回滚到基线的更改。 虽然通过差异磁盘提供的父/子存储拓扑的灵活性对于测试很有用,但这不是性能的最佳配置,因为存在与在使用差异磁盘时维护所需的父/子拓扑相关的开销。
- 传递磁盘 - 传递磁盘功能允许来宾操作系统绕过 Hyper-V 主机文件系统并直接访问磁盘。 通过传递提供给来宾操作系统的磁盘必须在 Hyper-V 主机中设置为“脱机”,以确保主机和来宾操作系统不会同时尝试访问磁盘。 传递磁盘与其他磁盘存储选项具有边际性能优势,但不支持虚拟磁盘的某些功能,例如虚拟机快照和群集支持。 因此,不建议在 BizTalk 或SQL Server环境中使用传递磁盘功能,因为边缘性能优势比缺少的功能所抵消。

有关 Hyper-V 提供的磁盘存储选项的相对性能的详细信息,请参阅博客文章“Hyper-V 存储分析”,位于此https://go.microsoft.com/fwlink/?LinkID=132848处。
使用 SCSI 控制器为数据卷配置磁盘 建议这样做,因为仅当安装了 Hyper-V 集成服务时,才能安装 SCSI 控制器,而模拟的 IDE 控制器在没有安装 Hyper-V 集成服务的情况下可用。 使用集成服务提供的 IDE 筛选器驱动程序执行的磁盘 I/O 比模拟 IDE 控制器提供的磁盘 I/O 性能要好得多。 因此,为了确保 Hyper-V 虚拟化环境中的数据文件的最佳磁盘 I/O 性能,请在主机和来宾操作系统上安装集成服务,并使用综合 SCSI 控制器为数据卷配置磁盘。 对于跨多个数据驱动器的高密集型存储 I/O 工作负荷,每个 VHD 都应附加到单独的合成 SCSI 控制器,以提高整体性能。 此外,每个 VHD 都应存储在单独的物理磁盘上。 重要: 不要将系统磁盘附加到 SCSI 控制器。 包含操作系统的虚拟硬盘必须附加到 IDE 控制器。

优化内存性能

遵循以下准则优化 Hyper-V 虚拟环境中运行的来宾操作系统的内存性能:

步骤 参考
确保托管 Hyper-V 虚拟机的物理计算机上已安装足够的内存 - 可用物理内存通常是在 Hyper-V 虚拟机上运行的BizTalk Server最重要的性能因素。 这是因为每个虚拟机必须驻留在非分页池内存中,或无法分页到磁盘的内存。 由于无法将非分页池内存分页到磁盘,托管虚拟机的物理计算机应具有与为每个虚拟机分配的内存的总和以及以下内容的物理计算机:
虚拟机监控程序的 300 MB 以及分配给每个虚拟机的第一 GB RAM 的 32 MB,以及分配给每个虚拟机的附加 RAM 的 8 MB,以及根分区上运行的主机操作系统的 512 MB
例如,如果 Hyper-V 虚拟机在 Hyper-V 管理器中分配了 2 GB 内存,则运行 Hyper-V 虚拟机时使用的实际物理内存大约为 2388MB (300MB,用于为虚拟机分配的虚拟机监控程序 +2GB + 32MB + 8MB = 2388MB) 。 由于虚拟机监控程序只需要加载一次,因此后续虚拟机的初始化不会产生与加载虚拟机监控程序相关的 300 MB 开销。 因此,如果 Hyper-V 管理器中每个分配两个 Hyper-V 虚拟机的内存为 2 GB,则运行这些 Hyper-V 虚拟机时使用的实际物理内存大约为 4476MB (300MB,用于为虚拟机分配的虚拟机监控程序 +4GB + 64 MB + 16MB = 4476MB) 。 注意: 作为一般经验规则,计划为根分区至少分配 512 MB 内存,以提供 I/O 虚拟化、快照文件支持和子分区管理等服务。
- 尽可能使用 64 位来宾操作系统 - 请考虑为每个来宾操作系统使用 64 位操作系统。 这样做是因为默认情况下,32 位Windows操作系统只能处理每个进程的最多 2GB 虚拟地址空间。 安装 64 位操作系统允许应用程序充分利用托管 Hyper-V 虚拟机的物理计算机上安装的内存。

优化网络性能

Hyper-V 支持虚拟机中的合成和模拟网络适配器,但合成设备可提供显著更好的性能和降低 CPU 开销。 其中每个适配器都连接到虚拟网络交换机,如果需要外部网络连接,可以连接到物理网络适配器。 按照本节中的建议优化 Hyper-V 虚拟环境中运行的来宾操作系统的网络性能。

注意

这些建议来自可供下载https://go.microsoft.com/fwlink/?LinkID=202087的“Windows Server 2008 R2 性能优化指南”白皮书的“虚拟化服务器性能优化”部分。 有关如何优化根分区中的网络适配器,包括中断审查,请参阅本指南的“网络子系统性能优化”部分。 应根据需要将该部分中的 TCP 优化应用于子分区。

步骤 参考
配置在同一 Hyper-V 主机计算机上运行的 Hyper-V 虚拟机以使用专用虚拟网络 按照网络优化“配置在同一 Hyper-V 主机计算机上运行的 Hyper-V 虚拟机”部分中的建议,以使用专用虚拟网络”。
禁用虚拟机网卡的 TCP 卸载 按照网络 优化“禁用虚拟机网卡的 TCP 卸载”部分中的建议进行操作。
将来宾操作系统配置为使用 Hyper-V 合成网络适配器。 Hyper-V 具有专为 VM 设计的合成网络适配器,与模拟现有硬件的模拟网络适配器相比,可大幅降低网络 I/O 上的 CPU 开销。 合成网络适配器使用共享内存在 VMBus 上的子分区和根分区之间进行通信,以便更高效地传输数据。
应通过 VM 设置对话框删除模拟网络适配器,并将其替换为合成网络适配器。 来宾要求安装 VM 集成服务。
如果可用,请为根分区中的物理网络适配器驱动程序启用卸载功能。 与本机方案一样,物理网络适配器中的卸载功能减少了 VM 方案中网络 I/O 的 CPU 使用率。 Hyper-V 当前使用 LSOv1 和 TCPv4 校验和卸载。 必须在驱动程序中为根分区中的物理网络适配器启用卸载功能。 有关网络适配器中卸载功能的详细信息,请参阅“Windows Server 2008 R2 性能优化指南”的“虚拟化服务器性能优化指南”部分的“选择网络适配器”部分,以供https://go.microsoft.com/fwlink/?LinkID=202087下载。
某些网络适配器的驱动程序禁用 LSOv1,但默认启用 LSOv2。 系统管理员必须使用设备管理器中的驱动程序属性对话框显式启用 LSOv1。
配置网络交换机拓扑以使用多个网络适配器。 Hyper-V 支持创建多个虚拟网络交换机,其中每个交换机都可以根据需要附加到物理网络适配器。 VM 中的每个网络适配器都可以连接到虚拟网络交换机。 如果物理服务器有多个网络适配器,则具有网络密集型负载的 VM 可以从连接到不同的虚拟交换机中获益,以便更好地使用物理网络适配器。
如果在 Hyper-V 主机计算机上安装了多个物理网卡,可将每个网卡的设备中断绑定到单个逻辑处理器。 在某些工作负荷下,将单个网络适配器的设备中断绑定到单个逻辑处理器可以提高 Hyper-V 的性能。 建议仅使用此高级优化来解决完全使用网络带宽的特定问题。 系统管理员可以使用 IntPolicy 工具将设备中断绑定到特定处理器。 有关 IntPolicy 工具的详细信息,请参阅 https://go.microsoft.com/fwlink/?LinkID=129773
如果可能,请为 Hyper-V 合成网络适配器启用 VLAN 标记。 Hyper-V 合成网络适配器支持 VLAN 标记。 如果物理网络适配器支持对大型发送和校验和卸载进行封装NDIS_ENCAPSULATION_IEEE_802_3_P_AND_Q_IN_OOB封装,则它可以显著提高网络性能。 如果没有此支持,Hyper-V 无法对需要 VLAN 标记和网络性能的数据包使用硬件卸载。
在 Hyper-V 主机计算机上安装高速网络适配器,并为最佳性能进行配置。 考虑在 Hyper-V 主机计算机上安装 1-GB 网络适配器,并使用固定速度配置网络适配器,而不是使用“自动协商”-请务必将网络速度、双工和流控制参数设置为对应于其连接的交换机上的设置。
遵循优化网络性能的最佳做法。 网络 优化 主题提供了优化网络性能的一般指南。 虽然本主题不提供优化 Hyper-V 虚拟化环境中BizTalk Server性能的具体建议,但技术适用于任何BizTalk Server解决方案,无论是在物理硬件上运行还是在 Hyper-V 虚拟化环境中运行。

优化SQL Server性能

按照主题SQL Server优化中的建议来优化BizTalk Server解决方案的SQL Server性能。 虽然本主题不提供优化 Hyper-V 虚拟化环境中BizTalk Server性能的具体建议,但技术适用于任何BizTalk Server解决方案,无论是在物理硬件上运行还是在 Hyper-V 虚拟化环境中运行。

优化BizTalk Server解决方案

按照主题中的建议BizTalk Server优化来优化BizTalk Server解决方案的性能。 虽然本主题不提供优化 Hyper-V 虚拟化环境中BizTalk Server性能的具体建议,但技术适用于任何BizTalk Server解决方案,无论是在物理硬件上运行还是在 Hyper-V 虚拟化环境中运行。