你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用 Azure NetApp 文件进行 SQL Server 部署的好处

相比于块存储解决方案,Azure NetApp 文件可降低 SQL Server 总拥有成本 (TCO)。 使用块存储时,虚拟机对磁盘操作的 I/O 和带宽施加限制。 使用 Azure NetApp 文件时仅应用网络带宽限制,且仅在流出量上施加限制。 换句话说,没有对 Azure NetApp 文件应用任何 VM 级别的 I/O 限制。 如果没有 I/O 限制,则已连接到 Azure NetApp 文件且在较小虚拟机上运行的 SQL Server 与在较大虚拟机上运行的 SQL Server 在性能上并无二致。 正因如此,实例大小的减少可将计算成本降低到之前价格标签的 25%。 借助 Azure NetApp 文件降低计算成本。

但相比于 SQL Server 许可证成本,计算成本较低。 Microsoft SQL Server 许可与物理核心计数相关联。 因此,减少实例大小节省了更多软件许可成本。 借助 Azure NetApp 文件降低软件许可证成本。

本文介绍有关使用 Azure NetApp 文件进行 SQL Server 部署的详细成本分析和性能优势。 有了 Azure NetApp 文件,较小的实例不仅有足够的 CPU 来完成只有较大实例上的块才有可能完成的数据库工作,而且在许多情况下,较小实例的性能甚至更优于基于磁盘的较大实例。

详细成本分析

本部分中的两组图形介绍了 TCO 示例。 已为每个方案选择了托管磁盘的数量和类型、Azure NetApp 文件服务级别以及容量,以实现最优的价格和容量性能。 每个图形中显示分组的计算机(例如将使用 Azure NetApp 文件的 D16 与使用托管磁盘的 D64 进行对比),且为每种计算机类型细分价格。

第一组图形通过 D16s_v4 与 D64、D8 与 D32 以及 D4 与 D16 的对比,显示了使用 1 TiB 数据库大小的解决方案的总体成本。 每种配置的预计 IOPS 通过绿色或黄色线条指示,并与右侧 Y 轴相对应。

Graphic that shows overall cost of the solution using a 1-TiB database size.

第二组图形显示使用 50 TiB 数据库的总体成本。 但比较方式是相同的,例如将使用 Azure NetApp 文件的 D16 与使用块的 D64 进行比较。

Graphic that shows overall cost using a 50-TiB database size.

性能,强有力的性能支持

若要显著降低成本,需要性能的强力支持,例如,常规 Azure 清单中的较大实例支持 80000 次磁盘 IOPS。 单个 Azure NetApp 文件卷可以实现 80000 次数据库 IOPS,D16 这类实例能够使用此卷。 D16 通常能实现 25600 次磁盘 IOPS,其大小是 D64 的 25%。 D64s_v4 可以实现 80000 次磁盘 IOPS,因此性能表现优异,位于比较点的上层水平。

D16s_v4 可以驱动 Azure NetApp 文件卷实现 80000 次数据库 IOPS。 SQL 存储基准 (SSB) 的基准测试工具证明,D16 实例实现的工作负荷是 D64 实例磁盘可实现的工作负荷的 125%。 有关此工具的详细信息,请参阅 SSB 测试工具部分。

使用 1 TiB 工作集大小、80% 读取和 20% 更新的 SQL Server 工作负荷,度量了 D 实例类中大多数实例的性能;但并非全部,因为 D2 和 D64 实例本身未经过测试。 前者不支持加速网络而不予考虑,后者则是比较点。 请参阅下图,了解 D4s_v4、D8s_v4、D16s_v4 和 D32s_v4 各自的限制。 图形中未显示托管磁盘存储测试。 绘出的比较值直接取自 Azure 虚拟机限制表中 D 类实例类型的数据。

借助 Azure NetApp 文件,D 类中的每个实例都可以达到或超过实例磁盘性能的两倍。 借助 Azure NetApp 文件显著降低软件许可证成本。

  • D4 CPU 利用率为 75% 时与 D16 磁盘功能相当。
    • D16 的速率限制为 25600 次磁盘 IOPS。
  • D8 CPU 利用率为 75% 时与 D32 磁盘功能相当。
    • D32 的速率限制为 51200 次磁盘 IOPS。
  • D16 CPU 利用率为 55% 时与 D64 磁盘功能相当。
    • D64 的速率限制为 80000 次磁盘 IOPS。
  • D32 CPU 利用率为 15% 时也与 D64 磁盘功能相当。
    • 如上所述,D64 的速率限制为 80000 次磁盘 IOPS。

S3B CPU 限制测试 - 性能与处理能力

下图汇总了 S3B CPU 限制测试:

Diagram that shows average CPU percentage for single-instance SQL Server over Azure NetApp Files.

可伸缩性只是冰山一角。 延迟更加举足轻重。 较小的虚拟机驱动较高的 I/O 速率并不难,难的是与此同时实现个位数的低延迟,如下所示。

  • D4 使用 Azure NetApp 文件驱动 26000 次 IOPS,延迟为 2.3 毫秒。
  • D8 使用 Azure NetApp 文件驱动 51000 次 IOPS,延迟为 2.0 毫秒。
  • D16 使用 Azure NetApp 文件驱动 88000 次 IOPS,延迟为 2.8 毫秒。
  • D32 使用 Azure NetApp 文件驱动 80000 次 IOPS,延迟为 2.4 毫秒。

S3B 每个实例类型的延迟结果

下图显示了使用 Azure NetApp 文件的单实例 SQL Server 的延迟:

Diagram that shows latency for single-instance SQL Server over Azure NetApp Files.

SSB 测试工具

TPC-E 基准测试工具在设计上强调计算,而非存储。 本部分中所示的测试结果基于名为“SQL 存储基准”(SSB) 的压力测试工具。 SQL Server 存储基准可以驱动对 SQL Server 数据库的大规模 SQL 执行,以模拟 OLTP 工作负荷,这与 SLOB2 Oracle 基准测试工具类似。

SSB 工具生成 SELECT 和 UPDATE 驱动的工作负荷,该工作负荷将所述语句直接发出到 Azure 虚拟机中运行的 SQL Server 数据库。 对于此项目,SSB 工作负荷从 1 到 100 SQL Server 用户逐渐增加,每个用户 15 分钟 10 或 12 个中间点。 这些运行的所有性能指标都是从 perfmon 的角度来看,对于重复性而言,SSB 针对每个方案运行三次。

测试本身配置为 80% SELECT 语句和 20% UPDATE 语句,因此执行 90% 随机读取操作。 数据库本身由 SSB 创建,大小为 1000 GB。 它由 15 个用户表构成,每个用户表 9,000,000 行,每行 8192 个字节。

SSB 基准是一种开源工具。 可在 SQL 存储基准 GitHub 页中免费获得。

总之,

借助 Azure NetApp 文件,可以提高 SQL server 性能,同时显著降低总拥有成本。

后续步骤