Re: One vacuum full is not enough. - Mailing list pgsql-hackers

From Christopher Browne
Subject Re: One vacuum full is not enough.
Date
Msg-id m3oedsw49j.fsf@knuth.knuth.cbbrowne.com
Whole thread Raw
In response to One vacuum full is not enough.  (Gaetano Mendola <mendola@bigfoot.com>)
List pgsql-hackers
mendola@bigfoot.com (Gaetano Mendola) wrote:
> Hi all,
> running a 7.4.5 it happen to me with another table
> where a single vacuum full was not freeing enough pages,
> here the verbose vacuum full, as you can see only at
> the end:  truncated 8504 to 621 pages.
>
> I use pg_autovacuum and it's not enough. I'll schedule
> again a nightly vacuum full.

That doesn't follow as a legitimate inference.

It is fairly well certain that what you are "suffering" from are some
long running transactions that prevent dead tuples from being vacuumed
out.

That indicates that your focus on VACUUM FULL is a focus on a red
herring.

You can see that pretty easily; you're seeing VACUUM FULL requests not
"doing the trick" because the old transaction prevents _ANY_ kind of
vacuum from clearing out tuples that were 'killed' after that
transaction started.

The problem isn't particularly with your vacuum policy; it is with the
transaction handling behaviour in your application.  No vacuum policy
will ever really be "enough" until you can get the long running
transactions under control.
-- 
(format nil "~S@~S" "cbbrowne" "acm.org")
http://linuxdatabases.info/info/lsf.html
"I've run  DOOM more in  the last  few days than  I have the  last few
months.  I just love debugging ;-)" -- Linus Torvalds


pgsql-hackers by date:

Previous
From: Mark Shewmaker
Date:
Subject: Re: [BUGS] We are not following the spec for HAVING without GROUP
Next
From: Gaetano Mendola
Date:
Subject: Re: A bad plan