On Wed, Jul 7, 2010 at 3:32 PM, Richard Yen <rich...@iparadigms.com> wrote:
> On Jul 6, 2010, at 8:25 PM, Scott Marlowe wrote:
>
>> Tell us what you can about your hardware setup.
>
> Sorry, I made the bad assumption that the hardware setup would be 
> irrelevant--dunno why I thought that.
>
> My hardware setup is 2 FusionIO 160GB drives in a RAID-1 configuration, 
> running on an HP DL360 G5
>
> I think I figured out the problem:
>
> -- I figured that pg_xlog and data/base could both be on the FusionIO drive, 
> since there would be no latency when there are no spindles.
> -- However, I didn't take into account the fact that pg_xlog might grow in 
> size when autovacuum does its work when vacuuming to prevent XID wraparound.  
> I *just* discovered this when one of my other replication nodes decided to 
> die on me and fill up its disk.
> -- Unfortunately, my db is 114GB (including indexes) or 60GB (without 
> indexes), leaving ~37GB for pg_xlog (since they are sharing a partition).  So 
> I'm guessing what happened was that when autovacuum ran to prevent XID 
> wraparound, it takes each table and changes the XID, and it gets recorded in 
> WAL, causing WAL to bloat.  This this the correct understanding?

That seems logical (and un-fun), but I don't understand how you
managed to fill up 37GB of disk with WAL files.  Every time you fill
up checkpoint_segments * 16MB of WAL files, you ought to get a
checkpoint.  When it's complete, WAL segments completely written
before the start of the checkpoint should be recyclable.  Unless I'm
confused, which apparently I am.

-- 
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise Postgres Company

-- 
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance

Reply via email to