does anyone have any tips on this? Linux Software Raid doesn't seem to be doing a very good job here, but i may well have missed something.
i did a fairly naive setup using linux software raid on an amazon linux instance, 10 volumes (8G each), (WAL on a separate EBS volume) with the following setup: mdadm -v --create /dev/md1 --level=raid10 --raid-devices=10 /dev/xvdg /dev/xvdh /dev/xvdi /dev/xvdj /dev/xvdk /dev/xvdl /dev/xvdm /dev/xvdn /dev/xvdo /dev/xvdp pvcreate /dev/md1 vgcreate vg-pgdata /dev/md1 vgdisplay vg-pgdata lvcreate -L39.98g -nlv-pgdata vg-pgdata this particular instance is running about a factor of two slower than a simple single disk instance. both the single disk instance and the one with RAID10 for ~postgres/data/base started from amazon m1.xlarge instances. postgresql version is 8.4.9, using a simple pgbench test for 600 seconds; the single disk instance shows this: dbDev, single disk, shared_buffers=4GB, effective_cache_size=8GB disk mounted noatime, readahead 4096, other stuff default -bash-4.1$ pgbench -T 600 bench starting vacuum...end. transaction type: TPC-B (sort of) scaling factor: 1 query mode: simple number of clients: 1 duration: 600 s number of transactions actually processed: 535018 tps = 891.696072 (including connections establishing) tps = 891.704512 (excluding connections establishing) and the RAID10 instance shows this: dbQA, wal+raid10 setup, ext3 for WAL, ext4 for raid10, shared_buffers=2GB, effective_cache_size=3GB readahead 10240, wal&raid mount noatime, journal=ordered vm.swappiness=0,vm.overcommit_memory=2, dirty_ratio=2, dirty_background_ratio=1 starting vacuum...end. transaction type: TPC-B (sort of) scaling factor: 1 query mode: simple number of clients: 1 duration: 600 s number of transactions actually processed: 261513 tps = 435.854738 (including connections establishing) tps = 435.858853 (excluding connections establishing)