Re: Performance Question

From: "Scott Marlowe" <scott(dot)marlowe(at)gmail(dot)com>
To: "- -" <themanatuf(at)yahoo(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Performance Question
Date: 2008-11-13 02:26:02
Message-ID: dcc563d10811121826i114e9d47g894f5b729a8d08e@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Wed, Nov 12, 2008 at 9:27 AM, - - <themanatuf(at)yahoo(dot)com> wrote:
> I've been searching for performance metrics and tweaks for a few weeks now.
> I'm trying to determine if the length of time to process my queries is
> accurate or not and I'm having a difficult time determining that. I know
> postgres performance is very dependent on hardware and settings and I
> understand how difficult it is to tackle. However, I was wondering if I
> could get some feedback based on my results please.
>
> The database is running on a dual-core 2GHz Opteron processor with 8GB of
> RAM. The drives are 10K RPM 146GB drives in RAID 5 (I've read RAID 5 is bad
> for Postgres, but moving the database to another server didn't change
> performance at all). Some of the key parameters from postgresql.conf are:

I'm not sure what you mean. Did you move it to another server with a
single drive? A 100 drive RAID-10 array with a battery backed caching
controller? There's a lot of possibility in "another server".

>
> max_connections = 100
> shared_buffers = 16MB

WAY low. try 512M to 2G on a machine that big.

> work_mem = 64MB

acceptable. For 100 clients, if each did a sort you'd need 6.4Gig of
free ram, but since the chances of all 100 clients doing a sort that
big at the same time are small, you're probably safe.

>
> One of my tables has 660,000 records and doing a SELECT * from that table
> (without any joins or sorts) takes 72 seconds. Ordering the table based on 3
> columns almost doubles that time to an average of 123 seconds. To me, those

How wide is this table? IF it's got 300 columns, then it's gonna be a
lot slower than if it has 10 columns.

Try running your query like this:

\timing
select count(*) from (my big query goes here) as a;

and see how long it takes. This will remove the network effect of
transferring the data. If that runs fast enough, then the real
problem is that your client is waiting til it gets all the data to
display it.

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Dave Page 2008-11-13 08:55:04 Re: Performance Question
Previous Message Tomas Vondra 2008-11-13 00:27:31 Re: Using index for IS NULL query