测试结果:SQL Server 关键绩效指标

本主题总结了测试方案中观察到的 SQL Server 关键绩效指标(KPI)。 这些测试评估了以下 SQL Server KPI:

  • SQL 处理器利用率是通过 \SQL\Processor(_Total)\% 处理器时间 性能监视器计数器测量的。

  • \SQL Server:SQL Statistics\Batch Requests/sec 性能监视器计数器度量的每秒接收的 Transact-SQL 命令批处理数。

SQL Server 关键绩效指标摘要

对于每个方案,物理计算机都受到限制,因此逻辑处理器和虚拟处理器的数量是等效的。 这是使用 /maxmem 和 /numproc boot.ini 开关完成的。 有关使用这些开关的详细信息,请参阅以下位置 https://go.microsoft.com/fwlink/?LinkId=122139的“启动 INI 选项参考”。

SQL Server 关键绩效指标的比较 - 根据 \SQL\Processor(_Total)\% 处理器时间 计数器测量的 SQL Server 处理器利用率在所有测试环境中大致相同,范围从低 88% 到 90.1%的高点。 但是,在合并环境(4520)上测量的 \SQL Server:SQL Statistics\Batch Requests/sec 与物理环境 (6350) 上测量的 \SQL Server:SQL Statistics\Batch Requests/sec 之间存在显著差异。 \SQL Server:SQL Statistics\Batch Requests/sec 性能监视器计数器很好地指示 SQL Server 正在执行多少工作。 SQL Server 在 Hyper-V 环境中运行时,批处理请求/秒的减少归因于 Hyper-V 所需的 CPU 开销。

但是,在合并环境(4520)上测量的 \SQL Server:SQL Statistics\Batch Requests/sec 与物理环境 (6350) 上测量的 \SQL Server:SQL Statistics\Batch Requests/sec 之间存在显著差异。 \SQL Server:SQL Statistics\Batch Requests/sec 性能监视器计数器很好地指示 SQL Server 正在执行多少工作。 在 Hyper-V 环境下运行时,SQL Server 的批处理请求数每秒减少现象可归因于 Hyper-V 所需的 CPU 开销。

按照以下步骤,提升根据 \SQL Server:SQL Statistics\Batch Requests/sec 性能监视器计数器测量的 Hyper-V 虚拟机上运行的 SQL Server 的性能:

  1. 使用专用虚拟控制器和通道分配其他固定 VHD 磁盘 - 使用专用虚拟控制器和通道分配其他固定 VHD 磁盘会增加磁盘吞吐量,而不是使用单个 VHD 磁盘。

  2. 优化网络性能 - 按照《清单:优化 Hyper-V 上性能》中“优化网络性能”部分所概述的步骤进行操作。 在同一 Hyper-V 主机上运行多个 Hyper-V 虚拟机时,必须遵循“Hyper-V 配置在同一 Hyper-V 主计算机上运行的虚拟机以使用网络 优化”部分中的建议。

    由于 BizTalk Server 的无状态性质,可以根据需要轻松地将其他 SQL Server 虚拟机添加到环境中,以提供横向扩展并提高系统的整体性能。

    下图演示了各种测试平台上 SQL Server 的性能:

    SQL 关键绩效指标 SQL 关键绩效指标

    下表说明了为每个配置收集的 KPI 的相对性能。 每个结果集都计算为基线配置中 KPI 的百分比

KPI 虚拟 BizTalk/物理 SQL 独立主机上的虚拟 BizTalk 和虚拟 SQL 合并环境中的虚拟化 BizTalk/虚拟化 SQL
\SQL\Processor(_Total)\% 处理器时间 97.7% 98.4% 99.9%
\SQL Server:SQL Statistics\Batch Requests/sec 97.1% 83.3% 71.2%

有关如何评估磁盘 I/O 性能的详细信息,请参阅主题清单的“测量磁盘 I/O 性能”部分:测量 Hyper-V 的性能

有关在 Hyper-V 环境中运行 SQL Server 2008 时的最佳做法的详细信息,请参阅可下载 https://go.microsoft.com/fwlink/?LinkId=144622的白皮书“在 Hyper-V 环境中运行 SQL Server 2008 – 最佳做法和性能建议”。