Обсуждение: Autovacuum running although set to off, and wraparound limit has not been reached

Поиск
Список
Период
Сортировка

Autovacuum running although set to off, and wraparound limit has not been reached

От
Paolo Saul
Дата:
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