"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”控制台时,总是有两个条目构成大部分“按等待加载(平均活动会话)”:autovacuum
和 COMMIT
.
这正常吗,或者我应该做些什么?
回答中提示高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 秒的已提交事务。
每当我转到 RDS postgresql 实例的“Performance Insights”控制台时,总是有两个条目构成大部分“按等待加载(平均活动会话)”:autovacuum
和 COMMIT
.
这正常吗,或者我应该做些什么?
回答中提示高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 秒的已提交事务。