Amazon RDS - DB 存储
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 低于基准性能时,您可以积累积分,这些积分可用于未来突发性能的需求。
以下公式显示了突发持续时间和积分余额之间的关系。
突发持续时间 = (信用余额) / [(突发 IOPS) – 3(存储大小,以 GB 为单位)]
如果您的数据库需要频繁且长时间的突发性能,那么下一个存储类型将是更好的选择。
预配置 IOPS 存储
这是一种提供持续更高性能和一致低延迟的存储系统,最适合 OLTP 工作负载。
创建数据库实例时,您可以指定此类存储所需的 IOPS 速率和卷大小。以下图表可用于参考决定预配置存储下所需的 IOPS 和存储。
数据库引擎 | 预配置 IOPS 范围 | 存储范围 |
---|---|---|
MariaDB | 1000 到 40000 | 100 GB 到 16 TB |
SQL Server | 1000 到 32000 | 20GB 到 16 TB |
MySQL / Oracle/ PostgreSQL | 1000 到 40000 | 100GB 到 16 TB |
这是由 aws 维护的非常古老的存储技术,仅用于向后兼容性。其功能非常有限,如下所示。
不支持弹性卷
最大大小限制为 4 TB
最大限制为 1000 IOPS