We noticed that one of our high-volume insert tables was being vacuumed every time pg_autovacuum woke up. (I"m running it with the default threshold values, and a 900-second sleep cycle.) The table has a few million rows in it. With "debug = 2" on, here's what the pg_autovacuum log reports for this table:
[2004-04-30 09:32:11 AM] table name: nexcerpt."public"."links" [2004-04-30 09:32:11 AM] relid: 1014188; relisshared: 0 [2004-04-30 09:32:11 AM] reltuples: 3; relpages: 118888
Note that "reltuples" is being reported as "3", which seems a bit low. Aha!
# select reltuples from pg_class where relname = 'links'; reltuples ------------- 3.32127e+06 (1 row)
Is it possible that pg_autovacuum sees this value as "3"? Or is it just mis-formatting the value in the log?
Yes. This is a known bug inside of pg_autovacuum, it is fixed inside of CVS, and will be released with 7.4.3 (whenever that happens, hopefully soon since I'm getting lots of reports for this bug). Please downlooad pg_autovacuum from CVS and compile by hand for the time being.
Matthew O'Connor
---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings