Amazon Relational Database Service
用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

数据库实例存储

Amazon RDS for MySQL、MariaDB、PostgreSQL、Oracle 和 Microsoft SQL Server 的数据库实例使用 Amazon Elastic Block Store (Amazon EBS) 卷进行数据库和日志存储。根据所请求的存储量,Amazon RDS 自动将多个 Amazon EBS 卷分成条状以增强 性能。Amazon Aurora 使用专有存储系统。有关 Aurora 存储的更多信息,请参阅Amazon Aurora 存储

Amazon RDS 存储类型

Amazon RDS 提供三个存储类型:通用型 SSD(也称为 gp2)、预配置 IOPS SSD(也称为 io1)和磁性存储。它们的性能特性和价格不同,这意味着您可以根据数据库工作负载需求定制存储性能和成本。您可以创建最多具有 16 TiB 存储的 MySQL、MariaDB、SQL Server、PostgreSQL 和 Oracle RDS 数据库实例。对于此存储量,请使用预配置 IOPS SSD 和通用型 (SSD) 存储类型。

下面的列表简要介绍这三个存储类型:

  • 通用型 SSD – 通用型 SSD(也称作 gp2)卷提供适用于广泛工作负载的经济高效的存储。这些卷可以提供几毫秒的延迟,能够突增至 3000 IOPS 并维持一段较长的时间。这些卷的基准性能是由卷的大小决定的。

    有关通用型 SSD 存储的更多信息(包括存储大小范围),请参阅通用型 SSD 存储

  • 预配置 IOPS – 预配置 IOPS 存储符合 I/O 密集型工作负载(尤其是数据库工作负载)的需求,此类工作负载需要低 I/O 延迟和一致的 I/O 吞吐量。

    有关预置 (IOPS) 存储的更多信息 (包括存储大小范围),请参阅预配置 IOPS SSD 存储

  • 磁性 – Amazon RDS 还支持磁性存储以实现向后兼容。我们建议您采用通用型 SSD 或预配置 IOPS 来满足所有新存储需求。磁性存储上的数据库实例允许的最大存储量少于其他存储类型的这种量。

有多种因素会影响 Amazon EBS 卷的性能,如实例配置、I/O 特性和工作负载需求。有关充分利用预置的 IOPS 卷的更多信息,请参阅 Amazon EBS 卷性能

通用型 SSD 存储

通用型 SSD 存储提供了可被大多数数据库工作负载接受的经济实用的存储。以下是通用型 SSD 数据库实例的存储大小范围:

  • MySQL、Oracle、MariaDB 和 PostgreSQL 数据库实例:5 GiB–16 TiB

  • SQL Server Enterprise 和 Standard 版本: 200 GiB–16 TiB

  • SQL Server Web 和 Express 版本: 20 GiB–16 TiB

通用型 SSD 存储的基准 I/O 性能是每个 GiB 为 3 IOPS,这意味着较大的卷具有更好的性能。例如,100-GiB 卷的基准性能为 300 IOPS,而 1-TiB 卷的基准性能为 3,000 IOPS。3.34 TiB 和更大的卷的基准性能为 10,000 IOPS。

大小低于 1 TiB 的卷也有能力在较长的时间内突增至 3,000 IOPS(突增与 1 TiB 以上的卷无关)。实例 I/O 积分余额决定突增性能。有关 I/O 积分的更多信息,请参阅I/O 积分和突增性能

许多工作负载永远不会耗尽突增余额,这使得通用型 SSD 成为许多工作负载的理想存储选择。但是,某些工作负载可能会用完 3000 IOPS 突增存储积分余额,因此,应计划存储容量以满足您的工作负载需求。

I/O 积分和突增性能

通用型 SSD 存储性能受卷大小的约束,它指示卷的基本性能水平和积累 I/O 积分的速度。卷越大,基本性能水平越高,积累 I/O 积分的速度越快。I/O 积分代表您的通用型 SSD 存储在需要超过基本性能水平时可用来突增大量 I/O 的可用带宽。您的存储具有的 I/O 积分越多,它可以突增到基本性能水平以上的时间越长,并在您的工作负载需要时提供更高的性能。

使用通用型 SSD 存储时,数据库实例将收到 540 万个 I/O 积分的初始 I/O 积分余额。此初始积分余额足够维持 3,000 IOPS 的突增性能 30 分钟。设计余额的目的是为启动卷提供快速初始启动循环,并为其他应用程序提供良好的引导过程。卷以每 GiB 卷大小 3 IOPS 的基准性能率的速度获得 I/O 积分。例如,100-GiB SSD 卷具有基准性能 300 IOPS。

如果您的存储要求超过基本性能 I/O 水平,它将使用 I/O 积分余额中的 I/O 积分突增到所需的性能水平。这种突增最多可达 3,000 IOPS。大于 1,000 GiB 的存储具有等于或大于最大突增性能的基本性能。因此,其 I/O 积分余额永远不会耗尽,并且可以无限突增。如果存储在一秒内使用的 I/O 积分少于它所获得的积分,未使用的 I/O 积分会加到 I/O 积分余额中。使用通用型 SSD 存储的数据库实例的最大 I/O 积分余额等于初始 I/O 积分余额 (540 万 I/O 积分)。

假设您的存储使用了所有其 I/O 积分余额。如果是这样,那么其最高性能将保持在基本性能水平,直到 I/O 需求降到基本水平以下并将未使用的 I/O 积分添加到 I/O 积分余额中。(基本性能水平 是存储获得 I/O 积分的速率。)存储越多,基本性能就越高,它补充 I/O 积分余额的速率就越快。

注意

磁性存储和通用型 SSD 存储之间的存储转换可能会耗尽您的 I/O 积分余额,从而导致更长的转换时间。有关扩展存储的更多信息,请参阅使用存储

下表列出了多种存储大小。对于每个存储大小,它列出与存储相关的基本性能,也就是它积累 I/O 积分的速度。该表还列出了最大速率为 3,000 IOPS 时的突增持续时间,从完整 I/O 积分余额开始。此外,该表还列出了存储重新填满空 I/O 积分余额所需的秒数。

存储大小 (GiB) 基本性能 (IOPS) 3,000 IOPS 时的最大突增持续时间(秒) 填满空 I/O 积分余额所需的秒数
1 100 1862 54000
100 300 2000 18000
250 750 2400 7200
500 1500 3600 3600
750 2250 7200 2400
1000 3000 无限 不适用
3,333 10000 无限 不适用
10000 10000 无限 不适用

存储的突增持续时间取决于存储大小、所需的突增 IOPS 以及突增开始时的 I/O 积分余额。在以下公式中显示了这种关系。

(Credit balance) Burst duration =  ------------------------------------ (Burst IOPS) - 3(Storage size in GiB)

您可能会注意到,由于空的 I/O 积分余额,您的存储性能常常限于到基本水平。如果是这样,请考虑分配一种具有更高基本性能级别的更通用的 SSD 存储。或者,您可以为需要持续 IOPS 性能的工作负载切换到预置的 IOPS 存储。

对于具有稳定状态 I/O 要求的工作负载,配置低于 100 GiB 的通用型 SSD 存储可能会导致在用完 I/O 积分余额时出现更长的延迟。

注意

通常,大多数工作负载绝不会超过 I/O 积分余额。

有关基准性能和 I/O 积分余额如何影响性能的更详细说明,请参阅了解 Amazon RDS 和 GP2 的突发与基准性能

预配置 IOPS SSD 存储

对于需要快速且一致的 I/O 性能的生产应用程序,我们推荐预配置 IOPS(每秒输入/输出操作数)存储。预配置 IOPS 存储是一种存储类型,它提供了可预测的性能以及一致的低延迟。预置的 IOPS 存储针对性能要求一致的联机事务处理 (OLTP) 工作负载进行了优化。预配置 IOPS 可帮助这些工作负载的性能优化。

在创建数据库实例时,您可以指定 IOPS 速率和卷的大小。Amazon RDS 提供数据库实例的 IOPS 速率,直到您更改它为止。

注意

您的数据库工作负载可能无法 100% 实现您预配置的 IOPS。

下表显示每个数据库引擎的预配置 IOPS 的范围和存储大小范围。

数据库引擎 预置的 IOPS 的范围 存储的范围
MariaDB 1,000–40,000 IOPS 100 GiB–16 TiB
SQL Server、Enterprise 和 Standard 版本 1000–32,000 IOPS 200 GiB–16 TiB
SQL Server,Web 和 Express 版本 1000–32,000 IOPS 100 GiB–16 TiB
MySQL 1,000–40,000 IOPS 100 GiB–16 TiB
Oracle 1,000–40,000 IOPS 100 GiB–16 TiB
PostgreSQL 1,000–40,000 IOPS 100 GiB–16 TiB

将预配置 IOPS 存储与多可用区部署或只读副本组合

对于生产 OLTP 使用案例,我们建议您使用多可用区部署提高容错能力和预配置 IOPS 存储,以便实现快速可预测性能。

您还可以将预配置 IOPS SSD 存储与 MySQL、MariaDB 或 PostgreSQL 的只读副本一起使用。只读副本的存储类型与主数据库实例上的存储类型无关。例如,您可能需要对具有使用预配置 IOPS SSD 存储的主数据库实例的只读副本使用通用型 SSD 来降低成本。但是,在这种情况下,与主数据库实例和只读副本均使用预配置 IOPS SSD 存储的配置相比,只读副本的性能可能会不同。

预置的 IOPS 存储成本

通过预配置 IOPS 存储,您需要为预配置的资源付费,因此在规定月份中无论是否使用这些资源,您都需为此支付费用。

充分利用 Amazon RDS 预配置 IOPS SSD 存储

如果您的工作负载是 I/O 限制的,则使用预配置 IOPS SSD 存储可以增加系统能并发处理的 I/O 请求数。并发度提高可降低延迟,因为 I/O 请求在队列中占用的时间变少。降低延迟可加快数据库提交,从而缩短响应时间并提高数据库吞吐量。

预配置 IOPS SSD 存储提供了一种通过指定 IOPS 来预留 I/O 容量的方法。但是,与任何其他的系统容量属性一样,负载下的最大吞吐量会受到系统首先消耗的资源的限制。该资源可能是网络带宽、CPU、内存或数据库内部资源。

磁性存储

Amazon RDS 还支持磁性存储以实现向后兼容。我们建议您采用通用型 SSD 或预配置 IOPS SSD 来满足所有新存储需求。下面是磁性存储的一些限制:

  • 不允许您在使用 SQL Server 数据库引擎时扩展存储。

  • 不支持弹性卷。

  • 限制为 4 TiB 的最大大小。

  • 限制为最大 1,000 IOPS。

监控存储性能

Amazon RDS 提供了可供您用来确定如何执行数据库实例的多种指标。您可以在 Amazon RDS 管理控制台中的实例的摘要页上查看这些指标。您还可使用 Amazon CloudWatch 监控这些指标。有关更多信息,请参阅 查看数据库实例指标。增强监测提供了更详细的 I/O 指标;有关更多信息,请参阅增强监测

以下指标对于监控数据库实例的存储很有帮助:

  • IOPS – 每秒完成的 I/O 操作数。 该指标以给定时间间隔内 IOPS 平均值的形式进行报告。Amazon RDS 每分钟分别报告一次读取和写入 IOPS。 总 IOPS 是读取和写入 IOPS 的总和。 IOPS 典型值在每秒零至数万之间。

  • 延迟 – 从提交 I/O 请求到完成请求之间经过的时间。 该指标以给定时间间隔内延迟平均值的形式进行报告。Amazon RDS 每分钟分别报告一次读取和写入延迟,以秒为单位。典型的延迟值以毫秒为单位。例如,Amazon RDS 将 2 毫秒报告为 0.002 秒。

  • 吞吐量 – 每秒传输到磁盘或从磁盘中传输的字节数。 该指标以给定时间间隔内吞吐量平均值的形式进行报告。Amazon RDS 每分钟分别报告一次读取和写入吞吐量,所用单位为每秒兆字节 (MB/s)。吞吐量的典型值在零到 I/O 通道的最大带宽之间。

  • 队列深度 – 队列中等待处理的 I/O 请求数。这些是由应用程序提交但由于设备忙于处理其他 I/O 请求而尚未发送到设备的 I/O 请求。在队列中等待所花的时间是延迟和处理时间的一部分 (不以指标形式提供)。该指标报告为特定时间间隔内的平均队列深度。Amazon RDS 每分钟报告一次队列深度。队列深度的典型值在零到数百之间。

测量的 IOPS 值与单个 I/O 操作的大小无关。这意味着,在您度量 I/O 性能时,应该查看实例的吞吐量,而不是 I/O 操作数量。

影响存储性能的因素

系统活动和数据库工作负载均可能影响存储性能。

系统活动

以下系统相关活动圴使用 I/O 容量,并且可能会在执行这些活动时降低数据库实例性能:

  • 多可用区备用创建

  • 创建只读副本

  • 创建存储类型

数据库工作负载

在某些情况下,数据库或应用程序设计导致并发问题、锁定或其他形式的数据库争用。在这类情况下,您可能无法直接使用所有预配置的带宽。此外,您可能遇到以下与工作负载相关的情况:

  • 已到达基础实例类型的吞吐量限制。

  • 因为应用程序没有驱动足够的 I/O 操作,所以少于队列深度始终小于 1。

  • 您在数据库中遇到查询争用,即使部分 I/O 容量未使用也是如此。

如果系统资源均未达到或接近限值且添加线程不会增加数据库事务速率,那么瓶颈最有可能是数据库中发生争用。最常见的形式为行锁和索引页锁争用,但也有很多其他的可能性。 如果遇到这种情况,那么应该向数据库性能优化专家征求建议。

数据库实例类

要让 Amazon RDS 数据库实例发挥最大性能,请选择具有足够带宽的最新一代实例类型来支持您的存储类型。例如,您可以选择 EBS 优化实例和具有 10 Gb 网络连接的实例。

有关支持 EBS 优化的 Amazon EC2 实例类型的完整列表,请参阅支持 EBS 优化的实例类型