测试结果:SQL Server 关键性能指标
本主题总结了在测试方案中观察到SQL Server关键绩效指标 (KPI) 。 这些测试评估了以下 KPI SQL Server:
由 \SQL\Processor (_Total) \% Processor Time 性能监视器计数器测量的 SQL 处理器利用率。
每秒接收的 Transact-SQL 命令批数,由 \SQL Server:SQL Statistics\Batch Requests/sec 性能监视器计数器度量。
SQL Server关键绩效指标摘要
对于每个方案,物理计算机都受到限制,因此逻辑处理器和虚拟处理器的数量是等效的。 这是使用 /maxmem 和 /numproc boot.ini 开关完成的。 有关使用这些开关的详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=122139“启动 INI 选项参考”。
SQL Server关键性能指标的比较 - SQL Server处理器利用率在所有测试环境中都与 \SQL\Processor (_Total) \% 处理器时间计数器测量的处理器利用率大致相同,从低 88% 到 90.1% 不等。 但是,在合并环境中测量的 \SQL Server:SQL Statistics\Batch Requests/sec (4520) 与在物理环境中测量的 \SQL Server:SQL Statistics\Batch Requests/sec (6350) 之间存在显著差异。 \SQL Server:SQL Statistics\Batch Requests/sec 性能监视器计数器很好地指示SQL Server正在执行多少工作。 SQL Server在 Hyper-V 环境中运行时每秒批处理请求数的减少可以归因于 Hyper-V 所需的 CPU 开销。
但是,在合并环境中测量的 \SQL Server:SQL Statistics\Batch Requests/sec (4520) 与在物理环境中测量的 \SQL Server:SQL Statistics\Batch Requests/sec (6350) 之间存在显著差异。 \SQL Server:SQL Statistics\Batch Requests/sec 性能监视器计数器很好地指示SQL Server正在执行多少工作。 SQL Server在 Hyper-V 环境中运行时每秒批处理请求数的减少可以归因于 Hyper-V 所需的 CPU 开销。
按照以下步骤提高 Hyper-V 虚拟机上运行SQL Server的性能,该计数器由 \SQL Server:SQL Statistics\Batch Requests/sec 性能监视器计数器度量:
分配具有专用虚拟控制器和通道的其他固定 VHD 磁盘 – 使用专用虚拟控制器和通道分配其他固定 VHD 磁盘将增加磁盘吞吐量,而不是使用单个 VHD 磁盘。
优化网络性能 - 按照 清单:优化 Hyper-V 上的性能的“优化网络性能”部分中概述的步骤进行操作。 在同一 Hyper-V 主机上运行多个 Hyper-V 虚拟机时,遵循网络优化中“将在同一 Hyper-V 主机上运行的 Hyper-V 虚拟机配置为使用专用虚拟网络”部分中的建议尤为重要。
由于BizTalk Server的无状态性质,可以根据需要轻松地将其他SQL Server虚拟机添加到环境中,以提供横向扩展并提高系统的整体性能。
下图演示了各种测试平台上SQL Server的性能:
SQL 关键性能指标
下表说明了针对每个配置收集的 KPI 的相对性能。 每个结果集按基线配置 KPI 的百分比计算
KPI | 虚拟 BizTalk/物理 SQL | 独立主机上的虚拟 BizTalk/虚拟 SQL | 合并环境中的虚拟 BizTalk/虚拟 SQL |
---|---|---|---|
\SQL\Processor (_Total) \% Processor Time | 97.7% | 98.4% | 99.9% |
\SQL Server:SQL Statistics\Batch Requests/sec | 97.1% | 83.3% | 71.2% |
有关如何评估磁盘 I/O 性能的详细信息,请参阅主题清单:在 Hyper-V 上测量性能的测量磁盘 I/O 性能部分。
有关在 Hyper-V 环境中运行 SQL Server 2008 时的最佳做法的详细信息,请参阅可在 下载https://go.microsoft.com/fwlink/?LinkId=144622的白皮书“在 Hyper-V 环境中运行 SQL Server 2008 - 最佳做法和性能建议”。