优化 SQL Server 的存储 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

优化 SQL Server 的存储

概述

本节重点介绍适用于工作负载的 SQL Server 的亚马逊弹性块存储 (Amazon EBS) Elastic Block Store 固态硬盘存储的成本优化。 EC2

您可以使用多种存储选项来部署和运行 SQL Server 工作负载 AWS。应根据用途、架构、耐久性、性能、容量和成本来选择合适的存储。 AWS 运行 SQL Server 工作负载的客户通常会组合使用亚马逊 EBS、 NVMe FSx、亚马逊和亚马逊简单存储服务 (Amazon S3) Service 存储。

Amazon EBS 是连接到 EC2 计算实例的网络连接存储,用于存储和处理一般操作系统、应用程序、数据库和备份文件。Amazon EBS 固态驱动器(SSD)存储包括:通用型 SSD(gp2 和 gp3)和预调配 IOPS SSD(io1、io2 和 io2BX)。请考虑以下事项:

  • 有些 EC2 实例(例如 r5d)在本地 NVMe SSDs 物理连接到主机实例。这些卷提供通常用于 SQL Server tempdb 或缓冲池扩展的块级存储。

  • 亚马逊版 FSx Windows 文件服务器是一项完全托管的文件存储服务,而 Amazon FSx for NetApp ONTAP 是基于广受欢迎的 ONTAP 文件系统构建 NetApp的完全托管的共享存储。亚马逊经常 FSx 用于在高可用性 SQL Server 故障转移集群实例 (FCI) 配置中运行 SQL Server 工作负载。此解决方案托管 SQL Server 数据和日志文件,从而降低了 EBS 对 EC2 实例的性能要求。

  • Amazon S3 是一项对象存储服务,可提供行业领先的可扩展性、数据可用性、安全性和性能。您可以在 Amazon S3 上存储 SQL Server 原生备份文件 AMIs、EBS 快照、应用程序日志等。

Amazon EBS 的 SSD 存储类型、性能和成本

Amazon EBS 的 SSD 存储成本通常会随着持久性和性能的提升而增加。存储目前有五种卷类型,每种都有自己独特的性能指标。有关支持 SSD 的卷的使用案例和特征的摘要,请参阅 Amazon EBS 文档的固态驱动器(SSD)卷部分的表格。

您可以使用 Amazon CloudWatch 监控固态硬盘性能,捕获趋势数据,并在达到特定阈值时设置警报。如果您正在运行 SQL Server 工作负载 AWS,请考虑启用详细监控并部署CloudWatch 自定义指标以捕获详细的卷性能指标,例如磁盘延迟、IOPS、吞吐量、磁盘队列长度、已用容量与可用容量等。您可以使用这些 CloudWatch 性能指标来识别配置不足和过度配置的存储,并提供历史数据点以准确定义存储需求。

Amazon EBS 的 SSD 存储成本也因分配的容量而异。下面的表格对不同的卷类型进行了比较。所有卷类型都有 1TB 的容量和类似的性能配置。

卷类型 最大 IOPS(16KiB I/O) 最大吞吐量(128KiB I/O) 每 TB 价格 节省成本百分比
gp2 3000 250 102.40 美元  
gp3 3000 250 86.92 美元 15%
io1 16000 500 1,168 美元  
io2 16000 500 1,168 美元  
gp3 16000 500 146.92 美元 87%
io2bx 16000 4,000 1,168 美元  
gp3 16000 1000 181.92 美元 84%
注意

前面表格中的性能和成本指标基于 AWS 定价计算器中的估算值按每个卷进行计算。需要 AWS 账户 使用才能访问中的估算值 AWS 定价计算器。

Amazon EBS SSD gp3 卷以低成本提供卓越的性能。对于需要低于 16,000 IOPS 和 500 吞吐量的工作负载,如果您选择 gp3 卷而不是 io1 或 io2 卷,则最多可以节省 87%。 MiBps

io2 Block Express(io2BX)卷相比常规的 io2 卷具有更高的性能。在 16,000 IOPS 时,io1 或 io2 卷只能达到 500 个 MiBps吞吐量,而 io2bx 卷最多可以配置为 4,000 个吞吐量。 MiBps 与 io1 和 io2 卷相比,io2BX 卷能够以完全相同的价格提供四倍以上的吞吐量,介于 16000 至 64000 IOPS 之间。通过将常规 io2 卷附加到支持 io2BX 的实例,可以将其转换为 io2bx 卷。 EC2有关支持 IO2BX 的 EC2 实例的列表,请参阅 Amazon EBS 文档中的预配置 IOPS 固态硬盘卷。在部署新存储之前,您可以使用 AWS 定价计算器 来估算每月成本,并根据持久性、性能和容量之间的权衡来了解对成本的影响。

Amazon EBS 的通用 SSD 成本优化

我们建议您对所存储的内容进行评估,并确保您使用的是正确的存储类型和类别。例如,Amazon S3 提供了极具性价比的价格、内置的生命周期策略以及适合 SQL Server 备份的复制选项。SQL Server 2022 能够直接将数据备份到 Amazon S3,而之前版本的 SQL Server 则依赖于本机备份。如果您运行的是旧版本的 SQL Server,请考虑备份到 Amazon EBS HDD 卷,然后将备份复制到 Amazon S3。与使用 gp3 卷进行备份相比,此解决方案可以节省 53% 的费用。

下表显示了 Amazon EBS gp3、Amazon EBS HDD st1 和 Amazon S3 上 1TB 存储空间的价格差异。

存储类型 Capacity 价格 pm
EBS gp3 500 MiBps 1TB 96.92 美元
EBS st1 burst 500 MiBps 46.08 美元
S3 标准 23.55 美元
S3 Standard(不频繁访问) 12.80 美元
S3 Glacier Deep Archive 1.03 美元
注意

前面表格中的成本指标基于 AWS 定价计算器中的估算值进行计算。需要 AWS 账户 使用才能访问中的估算值 AWS 定价计算器。

我们建议您考虑以下几点:

  • 启用详细监控并部署 CloudWatch 自定义指标,以准确捕获其存储性能需求。

  • 将 Amazon EBS 存储从 gp2 升级到 gp3,以降低成本、增强灵活性并提升性能。

  • 将 Amazon EBS 存储从 io1 升级到 io2,以提高持久性和性能灵活性。

  • 尽可能使用 io2BX 而非 io1 或 io2,以提高持久性和性能。

  • 在选择存储时,请考虑一种有助于降低容量需求和高性能卷成本 mix-and-match的方法。例如,您可以将低成本的 gp3 卷用于根卷(操作系统)、SQL Server 安装、系统数据库(不包括 tempdb)以及性能较低的用户数据库。这有助于降低 io2 卷的容量和成本,从而使其能够专门用于高性能用户数据库。

  • 如果您在上托管 SQL Server 数据库 AWS,我们建议您在每个数据库中使用多个 SQL Server 数据文件。这允许将 read/write 工作负载分配到多个卷,从而降低每个卷的性能和容量需求,从而降低成本。

  • 即便生产工作负载需要性能更高的存储,例如 io1 或 io2/io2BX 类型的存储,对于非生产工作负载而言,也应考虑使用 gp3 卷,以帮助降低成本。

  • 跟踪并分析存储的使用情况随时间的变化趋势,以便轻松识别使用高峰和意外产生的费用。

  • AWS Compute Optimizer 用于根据实际使用情况对 EBS 卷进行纵向扩展或缩减的建议操作。

  • 使用的弹性 AWS 来调整 Amazon EBS 固态硬盘卷的性能和容量需求。与本地环境不同的是,您无需为未来的工作负载过度预调配存储性能和容量。您可以将现有的 SQL Server 工作负载迁移到上 AWS 并根据需要调整性能或容量,同时保持数据库在线。

其他资源