Autovacuum running although set to off, and wraparound limit has not been reached - Mailing list pgsql-general

From Paolo Saul
Subject Autovacuum running although set to off, and wraparound limit has not been reached
Date
Msg-id AANLkTi=Ag_osMYpd=2Wij09uuBre0gaA3sLXCWbr8kvT@mail.gmail.com
Whole thread Raw
List pgsql-general
POSTGRESQL version 8.3.5
Centos5 x64

#------------------------------------------------------------------------------
# AUTOVACUUM PARAMETERS
#------------------------------------------------------------------------------

autovacuum = off                        # Enable autovacuum subprocess?  'on'
                                        # requires track_counts to also be on.
#log_autovacuum_min_duration = -1       # -1 disables, 0 logs all actions and
                                        # their durations, > 0 logs only
                                        # actions running at least that time.
#autovacuum_max_workers = 3             # max number of autovacuum subprocesses
#autovacuum_naptime = 1min              # time between autovacuum runs
#autovacuum_vacuum_threshold = 50       # min number of row updates before
                                        # vacuum
#autovacuum_analyze_threshold = 50      # min number of row updates before
                                        # analyze
#autovacuum_vacuum_scale_factor = 0.2   # fraction of table size before vacuum
#autovacuum_analyze_scale_factor = 0.1  # fraction of table size before analyze
autovacuum_freeze_max_age = 250000000   # maximum XID age before forced vacuum
                                        # (change requires restart)
#autovacuum_vacuum_cost_delay = 20      # default vacuum cost delay for
                                        # autovacuum, -1 means use
                                        # vacuum_cost_delay
#autovacuum_vacuum_cost_limit = -1      # default vacuum cost limit for
                                        # autovacuum, -1 means use
                                        # vacuum_cost_limit

Autovacuum is set to off, but we are still seeing these in pg_stat_activity:

autovacuum: VACUUM pg_catalog.pg_statistic
autovacuum: VACUUM {schemaX.tableY}
autovacuum: VACUUM {schemaA.TableB}

These do not have the "(to prevent TransactionID Wraparound)" comment in them, so I am surprised to see these running with autovacuum set to off.
These tables have not reached their wraparound limits yet.
Out of curiosity, I modified the config file settings and increased the autovacuum_vacuum_threshold to a relatively high value for our environment (50M)
and reloaded the config settings via pg_reload_conf(). After this, the vacuum activities stopped.

My questions would be:

1) Aside from preventing wraparounds, in what other circumstances does autovacuum run?
2) Did changing the autovacuum config settings cause the autovacuums to stop, if so, why, when autovacuum is set to 'off' the whole time?


Best Regards,

Paolo Saul

pgsql-general by date:

Previous
From: Guillaume Lelarge
Date:
Subject: Re: How to restore from backup to 8.4.3 server using 9.0 dump/restore
Next
From: Adrian Klaver
Date:
Subject: Re: What is the name pseudo column