"autovacuum" 和 "COMMIT" 始终是加载 RDS postgresql 性能洞察力的主要贡献者是否正常?

Is it normal for "autovacuum" and "COMMIT" to always be top contributors to load in RDS postgresql performance insights?

每当我转到 RDS postgresql 实例的“Performance Insights”控制台时,总是有两个条目构成大部分“按等待加载(平均活动会话)”:autovacuumCOMMIT.

这正常吗,或者我应该做些什么?

回答中提示高COMMIT负载可能是由于磁盘超载造成的。我假设一些 cloudwatch 指标可能支持这一点,但我不确定这里也有什么是正常的。

DiskQueueDepth(一周内每小时最大值):

WriteLatency(一周内最大每小时):

ReadLatency 永远不会达到 0.002 秒左右,所以我认为这不是问题。

CPU IO/wait 很有趣;这是(我认为)来自 Performance Insights 的图表。它在过去 24 小时内达到 6% 左右的峰值(我认为这可能是 5 分钟的平均值):

如果 COMMIT 消耗大量时间,这通常是 I/O 过载的明确标志。

但在你的案例中,所有的证据都反对这一点。由于我不知道该图究竟衡量了什么,我会说您观察到的是一个中等繁忙的 OLTP 系统,其中包含许多小的写入操作。

如果您想减少 COMMIT 期间的工作,可以将 synchronous_commit 设置为 off。您将付出的代价是,在发生崩溃的情况下,您可能会损失最多 0.6 秒的已提交事务。