为什么我的 RDS 数据库实例中的 burst balance(突增余额)较低? 如何排查此问题?

上次更新时间:2022 年 7 月 29 日

我的用于 PostgreSQL 数据库实例的 Amazon Relational Database Service(Amazon RDS)具有较低的突增余额。我想阻止这种事情发生。

解决方法

Amazon RDS 数据库实例使用 Amazon Elastic Block Store (Amazon EBS) 卷进行存储。

预调配 IOPS 固态硬盘 (io1) 卷可提供一致的 IOPS 性能通用型 SSD (gp2) 卷取决于分配给数据库实例的存储大小。gp2 卷的 IOPS 是以千兆字节为单位的卷大小乘以 3,最小值为 100 IOPS(33.33 千兆字节及以下),最大值为 16,000 IOPS(5,334 千兆字节及以上)。例如,如果您的卷有 100 GiB,则您的卷的基准性能为 300 IOPS。

无论大小如何,一个 gp2 卷的初始 I/O 点数余额为 540 万 I/O 点数。这足以维持至少 30 分钟 3,000 IOPS 的最大 Burst(突增)性能。当卷需要的性能超过基准性能 I/O 级别时,该卷将利用 I/O 点数余额来执行所需的级别。

当卷的 burst balance(突增余额)耗尽时,该卷将恢复到其基准性能值。当 burst balance(突增余额)耗尽时,不会向用户收取额外费用。在 IOPS 使用量低于基准之前,该卷将保持其基准。然后,burst balance(突增余额)可以开始补充。

任何大于 1 TiB 的 gp2 卷的基准性能都高于 3,000 IOPS 的 Burst(突增)性能。对于此类卷,突发无关紧要,因为基准性能优于 3,000 IOPS 的 Burst(突增)性能。

然而,根据所请求存储的容量,Amazon RDS 自动将多个 Amazon EBS 卷分成条状以增强性能。因此,总共分配的 1 TiB 存储可能会分条到多个较小的卷,每个卷的 Burst(突增)性能为 3,000 IOPS。

要确定 RDS 实例的卷数,请打开增强监控并在物理设备控制台中检查卷的数量。

排除 burst balance(突增余额)过低的故障

请按照以下步骤排除低 burst balance(突增余额)故障:

  1. 通过打开 Amazon RDS 的性能洞察,验证 SQL 查询是否需要优化。
    警告:如有必要,请咨询贵组织的数据库管理员。要了解可以与 Performance Insights 一起使用的数据库引擎,请参阅在 Amazon RDS 上使用 Performance Insights 监控数据库负载
  2. 如果工作负载按预期运行或调整 SQL 查询无法解决问题,请确定是否需要增加数据库实例存储大小以实现更高的 IOPS 容量。Amazon RDS 不允许您在分配存储空间后减少存储量。只有在验证了所有其他调整选项后才增加存储容量。
  3. 纵向扩展存储类以提高性能或将存储类型从 gp2 更改为 io1 并分配所需的 IOPS。
    指定要分配的存储量。然后,指定所需的专用 IOPS 量。
  4. 如果您注意到一个数据库实例上的 IOPS 或吞吐量受到限制,请纵向扩展实例类以获得更高的吞吐量或 IOPS 容量。
    注意:请查看并选择最适合您需求的实例类,因为 io1 卷与 gp2 相比成本较高。

微突增的增强建模疑难解答

有关 EBS 卷中微突发的更多信息,请参阅如何对我的 Amazon RDS 实例中的 IOPS 瓶颈导致的 Amazon EBS 卷延迟进行故障排除,并查看微突增部分。