Re: Autovacuum Question
I just happened to be reading this page from
the 8.1 docs:
"The autovacuum daemon, when enabled, runs
every autovacuum_naptime seconds and
determines which database to process. Any database which is close to transaction
ID wraparound is immediately processed. In this case, autovacuum issues a
database-wide VACUUM call, or VACUUM
FREEZE if it's a template database, and then terminates. If no database
fulfills this criterion, the one that was least recently processed by autovacuum
is chosen. In this case each table in the selected database is checked, and
individual VACUUM or ANALYZE
commands are issued as needed."
PostgreSQL 8.1.3
Question on
autovacuum.
autovacuum_naptime (integer)
Specifies the delay
between activity rounds for the autovacuum subprocess. In each round the
subprocess examines one database and issues VACUUM and ANALYZE commands as
needed for tables in that database. The delay is measured in seconds, and the
default is 60. This option can be set at server start or in the
postgresql.conf file.
Does this mean that each run of autovacuum will
vacuum/analyze all tables that need work in the database that autovacuum is
looking at?
The reason I'm asking is that I have ~172 non system
tables in each database, so if autovacuum only does one table per run, I don't
think it will ever get caught up (since there are almost 35k tables in total).
Also, with over 200 databases, does this mean that a database will
only get checked once about every 3.5 hours, or does autovacuum run on the
database that needs the vacuuming the most?
Thanks,
Chris
Home |
Main Index |
Thread Index