Re: How to make a REALLY FAST db server?

From: Shaun Thomas <sthomas(at)townnews(dot)com>
To: bpalmer <bpalmer(at)crimelabs(dot)net>
Cc: <pgsql-general(at)postgresql(dot)org>
Subject: Re: How to make a REALLY FAST db server?
Date: 2001-09-10 19:27:18
Message-ID: Pine.LNX.4.33L2.0109101410050.1809-100000@hamster.lee.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Mon, 10 Sep 2001, bpalmer wrote:

> - Hardware: dual / quad Intel class

Fairly easy to obtain. If all you want is a dual, you can use
desktop-class motherboards from such makers as Asus, Abit, and
IWill. If you're going for speed, stick to the DDR or SDRAM
capable boards.

> - Disk: SCSI Raid 1+0

To really eek out as much speed as possible here, you'll want 10k RPM
Ultra-160 Fibre Channel SCSI drives with a dedicated hardware raid
controller. If have more reads than writes, you may want to use Raid 5
instead.

Postgres won't let you separate indexes from the database they represent,
so you can't make separate raid clusters for indexes and data; no
optimization there. Maybe in the next version that implements
schemas? What you can do if you use multiple DB's in your app design,
is put different DB's on different raid clusters. That'll help parallel
execution times. If you do this, make sure template1 and template0 are
separated from the rest of the databases, this will allow fast responses
from the system tables and make sure no application database IO affects
them adversely.

> - Ram: Not really sure here. Is there math somewhere for ram needs for
> pgsql? I imagine is has something to do with # connections, db size,
> etc.

No reason not to go 2GB. Ram is cheap these days, and you can always
increase shared buffers and caches to actually fill the server memory
up with as much quick-fetch info as possible.

All in all, if you're making a DB machine, do whatever you can to get
rid of hits caused by disk IO. Parallelize as much as possible between
your databases, and if you have a DB capable of separating indexes from
the mix, do that too. Don't run any other services on it, and make
sure it has a nice wide 100MBit or 1GBit pipe so it doesn't saturate when
servicing multiple hosts.

Hope that helps.

--
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+
| Shaun M. Thomas INN Database Programmer |
| Phone: (309) 743-0812 Fax : (309) 743-0830 |
| Email: sthomas(at)townnews(dot)com AIM : trifthen |
| Web : hamster.lee.net |
| |
| "Most of our lives are about proving something, either to |
| ourselves or to someone else." |
| -- Anonymous |
+-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-+

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Dwayne Miller 2001-09-10 19:51:50 COPY command with timestamp and NULLs
Previous Message Jeff Eckermann 2001-09-10 19:23:35 Re: SQL Loader?