创建基线
创建基线是以下任一方法的有效方法:
- 了解现有数据库实例性能,以便在将该实例迁移到 IBM Cloud时能够映射到需求。
- 在 IBM Cloud中捕获新数据库实例的性能。
在此方法中,来自 Windows Performance Monitor 的性能计数器会捕获 SQL Server 等待统计信息,以更好地了解数据库实例的当前性能和潜在瓶颈。 关键计数器包括 :CPU ,内存, IOPS ,吞吐量和等待时间。 捕获应包括高峰时的工作负载活动。 高峰时段不仅包括工作日用户工作负载,还包括其他高负荷活动,包括日终处理和季末处理。 通过对计数器的分析,可以为托管 SAL 服务器实例的虚拟服务器最佳地选择计算和存储。
计算
在 IBM Cloud中,一个基本大小调整概念是,您只想供应应用程序所需的计算,然后计划根据业务需要向上或向下扩展。 这意味着您需要利用尽可能多的虚拟服务器资源,因此,应选择虚拟服务器 vCPU 大小,以在不影响工作负载的情况下保持平均 CPU 尽可能高。 理想情况下,尝试以平均使用 80% 的 vCPU 为目标,并允许峰值高于 90% ,但在任何持续的时间段内都不会达到 100%。
以下 Windows 性能监视器计数器可帮助验证 SQL Server 虚拟服务器的 CPU 运行状况:
- \Processor Information (_Total)% 处理器时间。
- \process (sqlservr)% 处理器时间。
内存应该是基线的,并且包括操作系统使用的内存以及 SQL Server内部使用的内存。 以下 Windows 性能监视计数器可帮助验证 SQL Server 虚拟服务器的内存运行状况:
- \ 内存 \ 可用 MB 数
- \SQLServer: 内存管理器 \ 目标服务器内存 (KB)。
- \SQLServer: 内存管理器 \ 服务器内存总量 (KB)。
- \SQLServer: 缓冲区管理器 \ 延迟写入数/秒。
- \SQLServer: 缓冲区管理器 \ 页面预期寿命。
存储
SQL Server 实例的性能在很大程度上取决于存储性能,存储性能由 IOPS 和吞吐量计数器度量。 如果数据库未完全适合可用内存空间,那么 SQL Server 会将数据库页面移入和移出缓冲池。 访问数据文件和日志文件的特征如下:
- 对日志文件的访问是顺序的,除非必须回滚事务
- 将随机访问数据文件 (包括 tempdb)。
以下 Windows 性能监视器计数器可帮助分析 SQL Server所需的 IO 吞吐量:
- \LogicalDisk \ Disk Reads/Sec-Read IOPS。
- \LogicalDisk \ 磁盘写入数/秒-写入 IOPS。
- \LogicalDisk \ Disk Read Bytes/Sec-data , log 和 tempdb 文件的读吞吐量需求。
- \LogicalDisk \ 磁盘写入字节数/秒-数据,日志和 tempdb 文件的写入吞吐量要求。
I/O 部件大小会影响 IOPS 和吞吐量功能,例如:
- 较小的 I/O 大小会产生更高的 IOPS。
- 较大的 I/O 大小会产生更高的吞吐量。
SQL Server 自动选择最佳 I/O 大小。 请参阅 块大小如何影响性能。 此外,请参阅 Storage-compute 性能指标,其中描述了计算实例与块存储卷之间的读和写操作的预期基线指标。