Amazon RDS - 数据库存储


RDS 实例使用 Amazon Block Storage (EBS) 卷来存储数据和日志。这些存储类型可以根据需要动态增加其大小。但根据与这些存储类型相关的数据库工作负载和价格,我们可以定制存储需求。以下是决定存储类型时需要分析的因素。

  • IOPS – 表示每秒执行的输入输出操作数。将读取和写入操作相加,得出 IOPS 值。AWS 每 1 分钟创建一份 IOPS 值报告。它的值可以是每秒 0 到数万。

  • 延迟– 启动 I/O 请求和完成 I/O 请求之间经过的毫秒数。延迟越大表示性能越慢。

  • 吞吐量– 每秒传入和传出磁盘的字节数。AWS 每 1 分钟间隔分别报告一次读取和写入吞吐量。

  • 队列深度– 它是在队列中等待的 I/O 请求到达磁盘之前的数量。AWS 每 1 分钟间隔报告一次队列深度。此外,较高的队列深度表示存储性能较慢。

基于以上考虑,aws存储类型如下。

通用SSD

这是一种经济高效的存储,可用于大多数常见数据库任务。它可以为 1-TiB 卷提供 3000 IOPS。在 3.34 TiB 大小中,性能最高可达 10000 IOPS。

I/O 积分

每 GB 存储允许 3 IOP 作为基准性能。这意味着 100 GB 卷可以提供 300 IOP。但可能存在需要更多 IOPS 的情况。在这种情况下,您需要使用存储初始化时提供的一些 IO 信用余额。当出现突发性能需求时,可以使用 540 万个 IO 积分。另一方面,当您使用的 IOPS 低于基准性能时,您可以积累积分,这些积分可用于未来突发性能的需求。

下面的公式显示了突发持续时间和信用余额之间的关系。

Burst Duration = (credit Balance) / [(burst IOPS) – 3(Storage size in GB)]

如果您的数据库需要频繁且长时间的突发性能,那么下一个存储类型将是更好的选择。

预配置 IOPS 存储

这是一种能够提供持续较高性能和持续低延迟的存储系统,最适合 OLTP 工作负载。

创建数据库实例时,您可以指定此类存储所需的 IOPS 速率和卷大小。下面是一个图表,供参考以决定预配置存储下所需的 IOPS 和存储空间。

数据库引擎 预配置 IOPS 范围 储存范围
玛丽亚数据库 1000 至 40000 100 GB 至 16 TB
SQL服务器 1000 至 32000 20GB 至 16TB
MySQL/Oracle/PostgreSQL 1000 至 40000 100GB 至 16TB

这是一项非常古老的存储技术,由 aws 维护,仅用于向后兼容。它的功能非常有限,如下所示。

  • 不支持弹性卷

  • 最大大小限制为 4 TB

  • 限制为最大 1000 IOPS