Configuration parameter

autovacuum_multixact_freeze_max_age — PostgreSQL configuration parameter

Category Vacuuming Default a relatively low 400 million multixacts Change scope Postmaster

Specifies the maximum age (in multixacts) that a table’s pg_class.relminmxid field can attain before a VACUUM operation is forced to prevent multixact ID wraparound within the table.

At a glance

Property Value
Parameter autovacuum_multixact_freeze_max_age
Category Vacuuming
Default a relatively low 400 million multixacts
Value type integer
Change scope Server restart required (postgresql.conf)
Available in PostgreSQL 12, 13, 14, 15, 16, 17, 18, 19 (added in 12)

What it does

Specifies the maximum age (in multixacts) that a table’s pg_class.relminmxid field can attain before a VACUUM operation is forced to prevent multixact ID wraparound within the table. Note that the system will launch autovacuum processes to prevent wraparound even when autovacuum is otherwise disabled.

Vacuuming multixacts also allows removal of old files from the pg_multixact/members and pg_multixact/offsets subdirectories, which is why the default is a relatively low 400 million multixacts. This parameter can only be set at server start, but the setting can be reduced for individual tables by changing table storage parameters. For more information see vacuum_for_multixact_wraparound.

(Description quoted from the official PostgreSQL documentation.)

How to apply a change

Set it in postgresql.conf (or with ALTER SYSTEM) and restart the server — this parameter cannot change without a restart.

Inspect the current value and source with SHOW autovacuum_multixact_freeze_max_age; or SELECT name, setting, unit, context, source FROM pg_settings WHERE name = 'autovacuum_multixact_freeze_max_age';.

Tuning guidance

This parameter is rarely a performance lever. Leave it at the default unless you have a specific, documented reason to change it, change it on one session or one role/database first, and confirm the effect with pg_settings and your own measurements before rolling it out cluster-wide.

Reference

PostgreSQL documentation — autovacuum_multixact_freeze_max_age.

Keep going

Related & next steps

Was this helpful?

← All configuration parameters