Amazon RDS PostgreSQL:读取 IOPS 突然增加

Amazon RDS PostgreSQL:读取 IOPS 突然增加

我们正在使用 Amazon RDS 托管我们的 PostgreSQL 数据库。我们的生产实例 (db.t3.xlarge,单可用区) 运行顺利,直到突然Read IOPSRead Latency和AWS 控制台中的指标迅速增加并随后保持高位(变化较小),而Read Throughput和则正常。Disk Queue DepthWrite IOPSWrite Throughput

读取 IOPS

读取吞吐量

磁盘队列深度

写入 IOPS

增加当天,代码没有发生变化,也没有部署。用户活动也没有显著增加。

关于我们的数据库结构,我们有一个表来保存所有数据,并且在该表中,我们有以下字段:idUUID(主键)、typeVARCHAR、dataJSONB(保存实际数据)createdAtupdatedAt带时区的时间戳。我们的大多数数据列的大小都大于 2 KB,因此大多数行都存储在 TOAST 表中。我们有 20 个(BTREE)索引,这些索引是为 JSONB 中常用的字段创建的。

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

我们还尝试增加存储,从而提高 IOPS 性能。这有点帮助,但仍然与以前不同。

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

相关内容