From: Tom Lane <tgl@sss.pgh.pa.us>
To: Tom Lanyon <tom+pgsql-admin@oneshoeco.com>
Cc: pgsql-admin@postgresql.org
Subject: Re: PD_ALL_VISIBLE flag set - autovacuum ignoring dead tuples
Date: Tue, 09 Aug 2011 11:03:31 -0400
Message-ID: <17365.1312902211@sss.pgh.pa.us> (raw)
In-Reply-To: <FFACCBE3-2D6F-4C90-B3D0-B1A2ACD85BA5@oneshoeco.com>
References: <FFACCBE3-2D6F-4C90-B3D0-B1A2ACD85BA5@oneshoeco.com>
Tom Lanyon <tom+pgsql-admin@oneshoeco.com> writes:
> I'm seeing a heavy-update TOAST table which is not being effectively autovacuum'd on 8.4.5. The stats collector shows n_dead_tup growing very quickly, and autovacuum runs frequently, but never removes any dead tuples. A manual vacuum does find many dead tuples (90+ % of the table) to remove, and removes them properly.
Is autovacuum actually running against the toast table? Check the
last_autovacuum column in pg_stat_all_tables. If not, and if pg_class'
relpages/reltuples columns seem pretty out of date for the toast table,
this might be a variant of the problem reported here:
http://archives.postgresql.org/pgsql-admin/2011-05/msg00101.php
which was patched here:
http://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=b503da135ab0bdd97ac3d3f720...
although that patch hasn't actually made it into any shipping release
yet :-(
I'm not entirely convinced that you're seeing a related issue, because
Florian was complaining of too many autovacuums not too few, but if you
cross your eyes a bit and assume the symptom is "poor autovacuum
scheduling" then maybe the same problem explains both.
Another post-8.4.5 bug fix that could affect autovacuum's promptness is
http://git.postgresql.org/gitweb/?p=postgresql.git&a=commitdiff&h=fab2af30d6bb4ca893e2e9bf96...> Whilst debugging, I found that there seems to be a large amount of the old 'PD_ALL_VISIBLE incorrectly set...' warnings emitted during the autovacuum run.
If that were the issue, manual vacuums would be subject to it too.
regards, tom lane
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-admin@postgresql.org
Cc: tgl@sss.pgh.pa.us, tom+pgsql-admin@oneshoeco.com
Subject: Re: PD_ALL_VISIBLE flag set - autovacuum ignoring dead tuples
In-Reply-To: <17365.1312902211@sss.pgh.pa.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox