Jon Burgess
Jon Burgess

Reputation: 2115

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

Whenever I go to the "Performance Insights" console for an RDS postgresql instance, there are always two entries making up most of the "load by waits (average active sessions)": autovacuum and COMMIT.

enter image description here

Is this normal, or should I be doing something about it?

It is suggested in an answer that the high COMMIT load may be due to the disk being overloaded. I assume that some cloudwatch metrics may support this, but I am unsure what is normal here too.

DiskQueueDepth (maximum per hour, over a week):

enter image description here

WriteLatency (maximum per hour, over a week):

enter image description here

ReadLatency never gets about 0.002s, so I assume this is not a problem.

CPU IO/wait is of interest; here is (I think) a graph of that from Performance Insights. It peaks at around 6% in the previous 24 hrs (I think this may be a 5 minute average):

enter image description here

Upvotes: 1

Views: 1834

Answers (1)

Laurenz Albe
Laurenz Albe

Reputation: 247515

If COMMIT consumes substantial time, that is usually a sure sign for I/O overload.

But in your case all the evidence speaks against that. Since I don't know what exactly the graph measures, I would say that what you observe is a moderately busy OLTP system with lots of small write operations.

If you want to reduce the work during COMMIT, you could set synchronous_commit to off. The price you would be paying is that you can lose up to 0.6 seconds of committed transactions in the case of a crash.

Upvotes: 2

Related Questions