【问题标题】:Amazon RDS PostgreSQL: Sudden increase in Read IOPSAmazon RDS PostgreSQL:读取 IOPS 突然增加
【发布时间】:2021-02-11 13:40:11
【问题描述】:

我们正在使用 Amazon RDS 来托管我们的 PostgreSQL 数据库。我们的生产实例(db.t3.xlarge,Single-AZ)一直平稳运行,直到突然Read IOPSRead LatencyRead ThroughputDisk Queue Depth AWS 控制台中的指标迅速增加并随后保持高位(可变性较低) 而Write IOPSWrite Throughput 是正常的。

Read IOPS

Read Throughput

Disk Queue Depth

Write IOPS

在增加之日没有代码更改或部署。用户活动也没有显着增加。

关于我们的数据库结构,我们有一个包含所有数据的表,在该表中,我们有以下字段:id 作为 UUID(主键),type 作为 VARCHAR,data 作为 JSONB (保存实际数据),createdAtupdatedAt 作为时区的时间戳。我们的大多数数据列的大小都大于 2 KB,因此大多数行都存储在 TOAST 表中。我们为 JSONB 中的常用字段创建了 20 个 (BTREE) 索引。

到目前为止,我们已经尝试过VACUUM ANALYZE,并且还完全重建了我们的表:创建一个新表,从旧表中复制所有数据,创建所有索引。他们没有改变行为。

我们还尝试增加存储空间,从而提高 IOPS 性能。有点帮助,但还是和以前不一样了。

这个问题的根本原因是什么?我们如何才能永久修复它(不增加存储或实例类型)?目前,我们正在寻找简单的更改,我们将在未来改进我们的数据模型。

【问题讨论】:

  • 亚马逊对此有何评论?哪些进程导致了这些读取?
  • 我们之前无法询问亚马逊,因为我们没有必要的支持计划。当他们回复时,我会在这里更新。关于进程,据 RDS 增强监控rdsdev 负责几乎所有的读取操作。
  • 可以查看RDS实例的CPU Burst Balance吗?
  • 您的读取似乎受到了限制。

标签: postgresql amazon-web-services amazon-rds


【解决方案1】:

T3 实例不适合生产。尝试搬到另一个家庭,如 C 或 M 型。您可能已经达到了一些突发限制,这些限制现在会导致奇怪的行为

【讨论】:

    猜你喜欢
    • 2019-05-02
    • 1970-01-01
    • 2017-09-15
    • 2016-04-18
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多