On Sat, Aug 29, 2009 at 5:20 AM, Luke Koops<luke.koops@xxxxxxxxxxx> wrote: > Joseph S Wrote >> If I have 14 drives in a RAID 10 to split between data tables >> and indexes what would be the best way to allocate the drives >> for performance? > > RAID-5 can be much faster than RAID-10 for random reads and writes. It is much slower than RAID-10 for sequential writes, but about the same for sequential reads. For typical access patterns, I would put the data and indexes on RAID-5 unless you expect there to be lots of sequential scans. That's pretty much exactly backwards. RAID-5 will at best slightly slower than RAID-0 or RAID-10 for sequential reads or random reads. For sequential writes it performs *terribly*, especially for random writes. The only write pattern where it performs ok sometimes is sequential writes of large chunks. > Always put the transaction logs (WAL Files) on RAID-10 (or RAID-1 if you don't want to dedicate so many drives to the logs). The only significant performance difference between RAID-10 and RAID-1 is that RAID-1 is much slower (factor of 4 or 5) for random reads. no, RAID-10 and RAID-1 should perform the same for reads. RAID-10 will be slower at writes by about a factor equal to the number of mirror sides. > I think the ratio of random reads from the transaction logs would typically be quite low. During normal operation the logs are *never* read, neither randomly nor sequentially. > You don't want your transaction logs or any swapfiles on RAID-5. The slow sequential write performance can be a killer. As i mentioned sequential writes are the only write case when RAID-5 sometimes ok. However the picture is complicated by transaction syncing which would make RAID-5 see it more as random i/o. In any case wal normally doesn't take much disk space so there's not much reason to use anything but RAID-1. -- greg http://mit.edu/~gsstark/resume.pdf -- Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-performance