On Tue, Jun 23, 2020 at 2:34 PM Jim Hurne <jhu...@us.ibm.com> wrote: > Sure! Below are more of the details from the same set of logs. Looking at > them myself, I see that there is always some percentage of tuples that are > dead but are not yet removable. And that number increases on every vacuum, > which might explain in part why autovacuum elapsed times keep increasing. > > What causes a dead tuple to be unremovable? >
Here are a couple good write ups. https://www.cybertec-postgresql.com/en/reasons-why-vacuum-wont-remove-dead-rows/ https://www.2ndquadrant.com/en/blog/when-autovacuum-does-not-vacuum/ Long running transactions are the common one that I see. You might be dealing with replication slots or prepared transactions. Basically, if some process might see that "old truth", then it can't be vacuumed away yet.