Re: autovacuum next steps, take 2 - Mailing list pgsql-hackers

From Jim C. Nasby
Subject Re: autovacuum next steps, take 2
Date
Msg-id 20070227024732.GG29041@nasby.net
Whole thread Raw
In response to Re: autovacuum next steps, take 2  ("Matthew T. O'Connor" <matthew@zeut.net>)
Responses Re: autovacuum next steps, take 2  ("Matthew T. O'Connor" <matthew@zeut.net>)
List pgsql-hackers
On Mon, Feb 26, 2007 at 06:23:22PM -0500, Matthew T. O'Connor wrote:
> Alvaro Herrera wrote:
> >Matthew T. O'Connor wrote:
> >>How can you determine what tables can be vacuumed within 
> >>autovacuum_naptime?
> >
> >My assumption is that
> >pg_class.relpages * vacuum_cost_page_miss * vacuum_cost_delay = time to 
> >vacuum
> >
> >This is of course not the reality, because the delay is not how long
> >it takes to fetch the pages.  But it lets us have a value with which we
> >can do something.  With the default values, vacuum_cost_delay=10,
> >vacuum_cost_page_miss=10, autovacuum_naptime=60s, we'll consider tables
> >of under 600 pages, 4800 kB (should we include indexes here in the
> >relpages count?  My guess is no).
> 
> I'm not sure how pg_class.relpages is maintained but what happens to a 
> bloated table?  For example, a 100 row table that is constantly updated 
> and hasn't been vacuumed in a while (say the admin disabled autovacuum 
> for a while), now that small 100 row table has 1000 pages in it most of 
> which are just bloat, will we miss this table?  Perhaps basing this on 
> reltuples would be better?

The entire point of this is to ensure that the second daemon will only
vacuum tables that it can finish very quickly. If you let a table bloat
so it's too big, then you just can't vacuum it very frequently without
risking all your other hot tables bloating because they're no longer
getting vacuumed.

The reality is that you can actually vacuum a pretty good-sized table in
60 seconds with typical cost-delay settings (ie: defaults except
cost_delay set to 10). That means you can do 9 pages ~100 times a
second, or 54k pages a minute. Even with a vacuum_cost_delay of 20,
that's still 27k pages per minute.
-- 
Jim Nasby                                            jim@nasby.net
EnterpriseDB      http://enterprisedb.com      512.569.9461 (cell)


pgsql-hackers by date:

Previous
From: Galy Lee
Date:
Subject: Re: Resumable vacuum proposal and design overview
Next
From: Tom Lane
Date:
Subject: Re: Seeking Google SoC Mentors