Re: Slow Postgresql server

From: Jeff Frost <jeff(at)frostconsultingllc(dot)com>
To: Jason Lustig <lustig(at)brandeis(dot)edu>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Slow Postgresql server
Date: 2007-04-12 05:33:12
Message-ID: Pine.LNX.4.64.0704112209550.4030@discord.home.frostconsultingllc.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches pgsql-performance

On Wed, 11 Apr 2007, Jason Lustig wrote:

> Hello all,
>
> My website has been having issues with our new Linux/PostgreSQL server being
> somewhat slow. I have done tests using Apache Benchmark and for pages that do
> not connect to Postgres, the speeds are much faster (334 requests/second v.
> 1-2 requests/second), so it seems that Postgres is what's causing the problem
> and not Apache. I did some reserach, and it seems that the bottleneck is in
> fact the hard drives! Here's an excerpt from vmstat:
>
> procs -----------memory---------- ---swap-- -----io---- --system--
> -----cpu------
> r b swpd free buff cache si so bi bo in cs us sy id wa
> st
> 1 1 140 24780 166636 575144 0 0 0 3900 1462 3299 1 4 49 48
> 0
> 0 1 140 24780 166636 575144 0 0 0 3828 1455 3391 0 4 48 48
> 0
> 1 1 140 24780 166636 575144 0 0 0 2440 960 2033 0 3 48 48
> 0
> 0 1 140 24780 166636 575144 0 0 0 2552 1001 2131 0 2 50 49
> 0
> 0 1 140 24780 166636 575144 0 0 0 3188 1233 2755 0 3 49 48
> 0
> 0 1 140 24780 166636 575144 0 0 0 2048 868 1812 0 2 49 49
> 0
> 0 1 140 24780 166636 575144 0 0 0 2720 1094 2386 0 3 49 49
> 0
>
> As you can see, almost 50% of the CPU is waiting on I/O. This doesn't seem
> like it should be happening, however, since we are using a RAID 1 setup
> (160+160). We have 1GB ram, and have upped shared_buffers to 13000 and
> work_mem to 8096. What would cause the computer to only use such a small
> percentage of the CPU, with more than half of it waiting on I/O requests?

Well, the simple answer is a slow disk subsystem. Is it hardware or software
RAID1? If hardware, what's the RAID controller? Based on your vmstat output,
I'd guess that this query activity is all writes since I see only blocks out.
Can you identify what the slow queries are? What version of postgres? How
large is the database? Can you post the non-default values in your
postgresql.conf?

I'd suggest you test your disk subsystem to see if it's as performant as you
think with bonnie++. Here's some output from my RAID1 test server:

Version 1.03 ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
pgtest 4G 47090 92 52348 11 30954 6 41838 65 73396 8 255.9 1
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 894 2 +++++ +++ 854 1 817 2 +++++ +++ 969 2

So, that's 52MB/sec block writes and 73MB/sec block reads. That's typical of
a RAID1 on 2 semi-fast SATA drives.

If you're doing writes to the DB on every web page, you might consider playing
with the commit_delay and commit_siblings parameters in the postgresql.conf.
Also, if you're doing multiple inserts as separate transactions, you should
consider batching them up in one transaction.

--
Jeff Frost, Owner <jeff(at)frostconsultingllc(dot)com>
Frost Consulting, LLC http://www.frostconsultingllc.com/
Phone: 650-780-7908 FAX: 650-649-1954

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Neil Conway 2007-04-12 06:53:49 pgsql: RESET SESSION, plus related new DDL commands.
Previous Message Jacky Leng 2007-04-12 05:17:50 Re: Why need XLogReadBuffer have the paramter "init"?

Browse pgsql-patches by date

  From Date Subject
Next Message Neil Conway 2007-04-12 06:57:42 Re: RESET SESSION v3
Previous Message Dennis Bjorklund 2007-04-12 04:34:14 Re: Slow Postgresql server

Browse pgsql-performance by date

  From Date Subject
Next Message Heikki Linnakangas 2007-04-12 10:57:17 Re: Automatic adjustment of bgwriter_lru_maxpages
Previous Message Dennis Bjorklund 2007-04-12 04:34:14 Re: Slow Postgresql server