Thread: clustering takes too long!

clustering takes too long!

From
"Ravindra Guravannavar"
Date:
Hi,

I am trying to cluster an index on the TPC-H lineitem table having
6 million records. The index is on a single column l_suppkey.  Postgres
(8.1.3) is not able to finish the operation even after 2 hours! The disk
is being accessed continuously and CPU is at 2%. Postmaster is
started with the following options:

-B 2000 --work-mem=10240 --maintenance_work_mem=10240 --wal_buffers=32 --checkpoint_segments=128 --checkpoint_timeout=600

No useful messages in the logfile. With the default checkpoint_segments
(before I increased it to 128), there was a warning about checkpoints taking
place too frequently.

I tried this on two different machines and also with 8.1.4 and see the
same behavior.

On the same system, I am able to cluster an index on another much
larger table (10 million) records within few minutes.

Any clues on what could be going wrong?

Thanks,
Ravi

Re: clustering takes too long!

From
Tom Lane
Date:
"Ravindra Guravannavar" <ravindrag@gmail.com> writes:
> I am trying to cluster an index on the TPC-H lineitem table having
> 6 million records. The index is on a single column l_suppkey.  Postgres
> (8.1.3) is not able to finish the operation even after 2 hours! The disk
> is being accessed continuously and CPU is at 2%. Postmaster is
> started with the following options:

> -B 2000 --work-mem=10240 --maintenance_work_mem=10240 --wal_buffers=32
> --checkpoint_segments=128 --checkpoint_timeout=600

You should increase maintenance_work_mem for large reindexing
operations.  That shared_buffers setting is about a factor of 10 too
small too.

            regards, tom lane