Just to make sure we're not needlessly suffering, on my fileserver at
least (raid5) I found it to be MUCH faster if I increase the raid
stripe cache:
# boost the raid5 cache size, default is 256
for i in /sys/block/md*/md/stripe_cache_size
do
echo 4096 > $i
done
This doesn't help with simple striping, but it helps a lot with
redundancy.
Also, you should check the dirty ratios (/proc/sys/vm/dirty_*) to make
sure (1) there's enough buffer to speed things up, but (2) not so much
that a flush (or even a read!) causes a long lockup.
Buying more RAM might help too.