On Jan 24, 2008, at 11:21 AM, Nathan Wilhelmi wrote:
Hello - Typically case of a software guy needing to spec hardware
for a new DB server. Further typified case of not knowing exact
amount of data and I/O patterns. So if you were to spec a disk
system for a new general purpose PostgreSQL server any suggestions
of what to start with?
Details I have:
1) We think 500GB is enough storage for the DB.
2) I would guess 66% read 33% write patterns, maybe closer to 50/50.
I would assume that we would want to go SCSI raid. Would you do the
whole disk array as Raid 5 or whole you partition it up differently?
Would you go with 3x300gb disks or would you use more smaller disks
to get there?
Any other gotchas or suggestions to look for?
You really need to have some idea of how much performance you need. A
sensible spec for 10tps is not the same as one for 1000tps.
If you need decent midrange performance, and don't want to spend a
fortune on tweaking and hardware...
I'd avoid RAID5. It's efficient use of disks for redundancy, but not
really the best for random write performance. RAID10 is more expensive
in number of spindles, but a good trade.
A good disk controller, with a battery-backed writeback cache is a
must, IMO, if you want to get decent performance without having to do
a lot of tuning, segregating WAL logs to separate drive mirrors, and
so on. Some people swear by software RAID, but the battery-backed
cache buys you quite a lot by hiding fsync latency.
There are some pretty good SATA based systems out there, and
performance is quite acceptable given a decent controller. High end
3ware and Areca get good reviews from people here. Don't assume you
have to go with SCSI. Also, more spindles are often better for
performance, and you can get a lot more SATA spindles for a given
budget than you can SCSI.
You might want to look at previous threads, mostly over in the -
performance mailing list. It's a fairly common question.
Cheers,
Steve
---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings