Skip site navigation (1) Skip section navigation (2)


From: "Noah Freire" <noah(dot)freire(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: autovacuum
Date: 2008-10-29 18:39:22
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-general

I have a table (accounts) with 600,000,000 rows. A heavy high-concurrent
workload that makes mostly updates on this table generates a lot of dead
tuples in its run, which is expected due to MVCC.
The problem is that even though autovacuum is enabled, the autovacuum worker
does not vacuum this table (I entered custom autovacuum settings for this
table in pg_autovacuum to try to force a situation). Autovacuum is working
for other smaller tables but not for accounts.

<2008-10-29 11:09:03.453 PDT>DEBUG: 00000: accounts: vac: 16697969
(threshold 6000050), anl: 16697969 (threshold 120000048)
<2008-10-29 11:09:05.610 PDT>DEBUG: 00000: accounts: vac: 16699578
(threshold 6000050), anl: 16699578 (threshold 120000048)
<2008-10-29 11:10:03.563 PDT>DEBUG: 00000: accounts: vac: 16735906
(threshold 6000050), anl: 16735906 (threshold 120000048)

please check the first log message: the vacuum threshold is 6,000,050 rows
and the number of dead tuples is 16,697,969. Even though the number of
dead_tuples is greater than the threshold the autovacuum is not being
triggered for this table. So, besides this condition (dead_tuples >
threshold) what else is taken into account by autovacuum?

Thank you,



pgsql-general by date

Next:From: Thom BrownDate: 2008-10-29 18:57:33
Subject: Re: Can't restart Postgres
Previous:From: Scott MarloweDate: 2008-10-29 18:38:12
Subject: Re: Can't restart Postgres

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group