Removing issues that cause bloat
Bloat can be caused by long-running queries or long-running write transactions that execute alongside write-heavy workloads. Resolving that is mostly down to understanding the workloads that are running on the server.
Getting ready
Look at the age of the oldest snapshots that are running, like this:
postgres=# SELECT now() - CASE WHEN backend_xid IS NOT NULL THEN xact_start ELSE query_start END AS age , pid , backend_xid AS xid , backend_xmin AS xmin , state FROM pg_stat_activity WHERE backend_type = 'client backend' ORDER BY 1 DESC; age | pid | xid | xmin | state ----------------+--...