Re: Disk space consumed by pk not returned after vacuum or reindex

From: Kevin Johnson <Kevin(dot)Johnson(at)noaa(dot)gov>
To: Bruno Wolff III <bruno(at)wolff(dot)to>, pgsql-admin(at)postgresql(dot)org, Sean Webb <Sean(dot)Webb(at)noaa(dot)gov>
Subject: Re: Disk space consumed by pk not returned after vacuum or reindex
Date: 2006-10-05 16:24:11
Message-ID: 452531AB.2050709@noaa.gov
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin

Thank you for the suggestion, Bruno. The clustering did the trick in
reducing the current disk usage, however eventually the disk space get
consumed once more. I fear that we may just need to update the version
of Postgres to help alleviate index bloat!

Bruno Wolff III wrote:
> On Wed, Sep 13, 2006 at 09:53:16 -0400,
> Kevin Johnson <Kevin(dot)Johnson(at)noaa(dot)gov> wrote:
>
>> We have a database, which consistently consumes more and more of the
>> disk space in it's lvol until it reaches 100%. So far, we have tried to
>> run a full vacuum on the database, with limited success. Eventually, we
>> had to drop and reload the database with the same data inside. It
>> brought the disk usage down to 73%. It then began to creep once more
>> toward 100%. After some research, I was able to use the pg_class
>> catalog to find that the items which are expanding the quickest are
>> primary key (btree) indexes. I attempted to run a REINDEX on one of the
>> tables with the pk taking up the largest amount of space. The usage
>> according to pg_class dropped dramatically, however the disk space was
>> not returned to the system. So I attempted another full vacuum
>> afterwards, and still nothing was returned to the system. These tables
>> are updated extremely frequently (although their total number of rows is
>> close to constant), which is my guess as to why the pk indexes increase
>> so rapidly in terms of their disk usage. Unfortunately, PostgreSQL
>> knowledge is limited, and I was wondering if anyone had experienced
>> something similar / knows what else we can do to return this disk space
>> back to the system?
>>
>
> This is possibly index bloat due to new keys always being larger than existing
> keys. This was fixed in later releases. There is still some potential for
> bloat due to fragmentation, but I believe that has a constant bound.
> You might try using the cluster command. I think that will both clean up
> the indexes and remove dead rows and do it faster than using a vacuum full
> and reindexing. The downside is that the table will be unavailable during
> the cluster which might be a deal breaker for you.
>

--
Kevin Johnson
Raytheon
AWIPS Sr. Systems Engineer
NWS Network Control Facility
p: 301.713.9362x325
f: 301.713.1905

In response to

Responses

Browse pgsql-admin by date

  From Date Subject
Next Message Benjamin Krajmalnik 2006-10-05 18:02:50 pg_dump/pg_restore problem
Previous Message Adam Radlowski 2006-10-05 06:37:13 Re: Recursive use