Azure VM 上的SQL Server
本文提供有关收集性能基线的信息,作为一系列最佳做法和指南,以优化SQL Server on Azure Virtual Machines(VM)的性能。
通常,优化成本与优化性能之间存在权衡。 此性能最佳做法系列侧重于获取 SQL Server on Azure Virtual Machines 的 最佳 性能。 如果工作负荷要求较低,可能不需要每项建议的优化。 评估这些建议时应考虑性能需求、成本和工作负荷模式。
概述
对于规范性方法,可以使用 PerfMon 或 LogMan 收集性能计数器,并捕获 SQL Server 等待统计信息,从而更好地了解源环境中的一般压力和潜在瓶颈。
首先,在应用程序性能清单之后,在峰值时间收集源工作负荷的 CPU、内存、IOPS、吞吐量和延迟。
在高峰时段收集数据,例如正常工作日的工作负载,以及其他高负载过程(如日终处理和周末的 ETL 工作负载)。 请考虑在异常繁重的工作负荷(例如季度末处理)期间扩容资源,然后在工作负荷完成后缩容。
使用性能分析来选择能够满足工作负荷性能要求的 VM 大小。
存储
SQL Server性能在很大程度上取决于 I/O 子系统。 按 IOPS 和吞吐量度量存储性能。 除非数据库完全适合于物理内存,否则 SQL Server 会不断地将数据库页在缓冲池中进出。 以不同的方式处理SQL Server数据文件。 对日志文件的访问是按顺序进行的,除非需要回滚事务,此时将随机访问包括 tempdb 在内的数据文件。 如果 I/O 子系统速度较慢,则用户可能会遇到性能问题,例如响应时间缓慢和由于超时而未完成的任务。
Azure Marketplace虚拟机在物理磁盘上具有日志文件,默认情况下与数据文件分开。
tempdb 数据文件计数和大小符合最佳做法,并以临时 D:\ 驱动器为目标。
以下 PerfMon 计数器可帮助验证SQL Server所需的 IO 吞吐量:
- \LogicalDisk\Disk Reads/Sec(读取 IOPS)
- \LogicalDisk\Disk Writes/Sec(写入 IOPS)
-
\LogicalDisk\Disk Read Bytes/Sec (数据、日志和
tempdb文件的读取吞吐量要求) -
\LogicalDisk\Disk Write Bytes/Sec (数据、日志和
tempdb文件的写入吞吐量要求)
使用峰值级别的 IOPS 和吞吐量要求,评估与测量的容量相匹配的 VM 大小。
如果工作负荷需要 20,000 个读取 IOPS 和 10,000 个写入 IOPS,可以选择 E16s_v3(最多 32,000 个缓存 IOPS 和 25,600 个未缓存 IOPS),或选择 M16_s(最多 20,000 个缓存 IOPS 和 10,000 个未缓存 IOPS),并使用存储空间将两个 P30 磁盘条带化。
请确保了解工作负载的吞吐量和 IOPS 要求,因为 VM 具有不同的 IOPS 和吞吐量缩放限制。
内存
跟踪 OS 使用的外部内存以及SQL Server内部使用的内存。 确定任一组件的压力有助于调整虚拟机的大小并识别优化机会。
以下 PerfMon 计数器可帮助验证SQL Server虚拟机的内存运行状况:
- \Memory\可用兆字节
- \SQLServer:Memory Manager\Target Server Memory (KB)
- \SQLServer:Memory Manager\Total Server Memory (KB)
- \SQLServer:Buffer Manager\Lazy writes/sec
- \SQLServer:Buffer Manager\页面存活时间
计算
Azure中的计算管理方式不同于本地环境。 由于获取新硬件的管理开销和成本,本地服务器设计为持续数年,无需升级。 虚拟化减少了其中一些问题,但应用程序经过优化以充分利用基础硬件。 对资源消耗的任何重大更改都需要重新平衡整个物理环境。
Azure中不存在此问题。 可以轻松地在不同的硬件系列上创建新的虚拟机,甚至在不同的区域中。
在Azure中,你希望尽可能多地利用虚拟机的资源。 配置Azure虚拟机,使平均 CPU 保持尽可能高,而不会影响工作负荷。
以下 PerfMon 计数器可帮助验证SQL Server虚拟机的计算运行状况:
- \Processor Information(_Total)% Processor Time
- \Process(sqlservr)% Processor Time
注意
确保计算资源的使用率达到 80%,在峰值时可超过 90%,但在任何持续时间内切勿达到 100%。 从根本上讲,只提供应用程序所需的计算资源。 计划根据业务需求扩展或缩小规模。
相关内容
有关每个优化区域的详细指南:
- 快速清单 - 查看完整的最佳做法清单
- VM 大小 - 选择正确的 VM 系列和配置
- 存储 - 优化磁盘配置和性能
- 安全性 - 实现安全最佳做法
- HADR 设置 - 配置高可用性和灾难恢复
- Updating SQL Server - 使SQL Server保持最新状态
在 SQL Server on Azure Virtual Machines 概述查看其他SQL Server虚拟机文章。 如果对 SQL Server 虚拟机有疑问,请参阅 常见问题。