Re: pg_autovacuum not having enough suction ? - Mailing list pgsql-performance

From Tom Lane
Subject Re: pg_autovacuum not having enough suction ?
Date
Msg-id 11991.1111780527@sss.pgh.pa.us
Whole thread Raw
In response to Re: pg_autovacuum not having enough suction ?  ("Matthew T. O'Connor" <matthew@zeut.net>)
Responses lazy_update_relstats considered harmful (was Re: pg_autovacuum not having enough suction ?)  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: pg_autovacuum not having enough suction ?  ("Matthew T. O'Connor" <matthew@zeut.net>)
List pgsql-performance
"Matthew T. O'Connor" <matthew@zeut.net> writes:
> hmm.... the value in reltuples should be accurate after a vacuum (or
> vacuum analyze) if it's not it's a vacuum bug or something is going on
> that isn't understood.  If you or pg_autovacuum are running plain
> analyze commands, that could explain the invalid reltules numbers.

> Was reltuples = 113082 correct right after the vacuum?

Another thing to check is whether the reltuples (and relpages!) that
autovacuum is reporting are the same as what's actually in the pg_class
row for the relation.  I'm wondering if this could be a similar issue
to the old autovac bug where it wasn't reading the value correctly.

If they are the same then it seems like it must be a backend issue.

One thing that is possibly relevant here is that in 8.0 a plain VACUUM
doesn't set reltuples to the exactly correct number, but to an
interpolated value that reflects our estimate of the "steady state"
average between vacuums.  I wonder if that code is wrong, or if it's
operating as designed but is confusing autovac.

Can autovac be told to run the vacuums in VERBOSE mode?  It would be
useful to compare what VERBOSE has to say to the changes in
reltuples/relpages.

            regards, tom lane

pgsql-performance by date:

Previous
From: "Matthew T. O'Connor"
Date:
Subject: Re: pg_autovacuum not having enough suction ?
Next
From: "Otto Blomqvist"
Date:
Subject: Re: pg_autovacuum not having enough suction ?