Type: | integer |
Default: | 60 (1min) |
Min: | 1 (1s) |
Max: | 2147483 (2147483s) |
Unit: | seconds (s) |
Context: | sighup |
Restart: | false |
Specifies the minimum delay between autovacuum runs on any given database. In each round the daemon examines the database and issues VACUUM and ANALYZE commands as needed for tables in that database. If this value is specified without units, it is taken as seconds. The default is one minute (1min
). This parameter can only be set in the postgresql.conf file or on the server command line.
Recommendations
Decrease this to 30s or 15s if you have a large number (100's) of tables, or if you otherwise see from pg_stat_user_tables that autovacuum is not keeping up.
On StackOverflow
On pgsql-hackers
- Re: New strategies for freezing, advancing relfrozenxid early
- Re: Testing autovacuum wraparound (including failsafe)
- Re: Bug fix. autovacuum.c do_worker_start() associates memory allocations with TopMemoryContext rather than 'Autovacuum start worker (tmp)'
- Re: Making autovacuum logs indicate if insert-based threshold was the triggering condition
- Re: Should vacuum process config file reload more often