Parameters
Vacuuming
28 PostgreSQL 18.6 parameters. Each one has its own animation and explanation.
Automatic Vacuuming
autovacuum: Master switch for the autovacuum launcher and its workers. Leave it on.autovacuum_analyze_scale_factor: Fraction of a table that must change before autovacuum refreshes its statistics (10%).autovacuum_analyze_threshold: Fixed number of changed rows before autovacuum re-collects planner statistics.autovacuum_freeze_max_age: Table age at which a forced anti-wraparound autovacuum starts, even if autovacuum is off.autovacuum_max_workers: How many autovacuum workers may run at the same time (PG18: changeable with a reload).autovacuum_multixact_freeze_max_age: MultiXact age at which a forced anti-wraparound autovacuum starts.autovacuum_naptime: How often the launcher considers each database for autovacuum work.autovacuum_vacuum_cost_delay: How long each autovacuum worker sleeps after using its cost budget (2 ms).autovacuum_vacuum_cost_limit: Total cost budget per nap for all autovacuum workers together (-1 = vacuum_cost_limit).autovacuum_vacuum_insert_scale_factor: Fraction of the unfrozen part of a table that must be newly inserted to trigger vacuum.autovacuum_vacuum_insert_threshold: Fixed number of inserted rows that triggers a vacuum (for insert-only tables).autovacuum_vacuum_max_threshold: PG18: upper cap on the dead-tuple trigger, so huge tables are not left too long.autovacuum_vacuum_scale_factor: Fraction of a table that must be dead rows before autovacuum vacuums it (20%).autovacuum_vacuum_threshold: Fixed number of dead rows a table needs before autovacuum vacuums it.autovacuum_worker_slots: PG18: process slots reserved at startup for autovacuum workers (the upper bound).
Cost-Based Vacuum Delay
vacuum_cost_delay: How long a manual VACUUM sleeps each time it uses up its cost budget (0 = never).vacuum_cost_limit: Cost points VACUUM may spend before it sleeps; also autovacuum's budget by default.vacuum_cost_page_dirty: Cost points when VACUUM modifies a clean page (it will have to be written out).vacuum_cost_page_hit: Cost points for a page VACUUM finds already in shared buffers.vacuum_cost_page_miss: Cost points for a page VACUUM has to read from the OS / disk.
Default Behavior
vacuum_truncate: PG18: whether VACUUM may cut empty pages off the end of a table (needs a brief exclusive lock).
Freezing
vacuum_failsafe_age: Emergency mode: past this age VACUUM drops throttling and index cleanup to finish freezing fast.vacuum_freeze_min_age: How old a row's XID must be before VACUUM freezes it when it visits the page.vacuum_freeze_table_age: Table age at which a normal VACUUM turns aggressive and scans every unfrozen page.vacuum_max_eager_freeze_failure_rate: PG18: how much failed eager freezing a normal VACUUM tolerates before it stops trying.vacuum_multixact_failsafe_age: MultiXact age at which VACUUM drops throttling and index cleanup to finish freezing.vacuum_multixact_freeze_min_age: How old a MultiXact ID must be before VACUUM replaces it in a row.vacuum_multixact_freeze_table_age: MultiXact age at which VACUUM turns aggressive and scans all unfrozen pages.