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?

-- 
Jeff Boes                                      vox 269.226.9550 ext 24
Database Engineer                                     fax 269.349.9076
Nexcerpt, Inc.                                 http://www.nexcerpt.com
           ...Nexcerpt... Extend your Expertise


Fri, 30 Apr 2004 09:45:21 -0400
Jeff Boes <jboes@nexcerpt.com>
pg_autovacuum misinterpreting reltuples?
Jeff Boes wrote:
> 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

Wed, 05 May 2004 14:25:36 -0400
"Matthew T. O'Connor" <matthew@zeut.net>
Re: pg_autovacuum misinterpreting reltuples?