Have you checked whether your disks are using their built-in write cache? It can make a considerable difference. On Linux, you can toggle the behaviour with hdparm
:
/sbin/hdparm -W 0 /dev/hda 0 Disable write caching
/sbin/hdparm -W 1 /dev/hda 1 Enable write caching
Obviously, if write caching is enabled, then there is the potential for data loss or corruption if your system shuts down uncleanly (e.g. power cut).
In terms of software, the Linux kernel uses two main numbers to parameterize the write behaviour.
/proc/sys/vm/dirty_ratio
/proc/sys/vm/dirty_background_ratio
Modern defaults are to write more frequently, to avoid huge write spikes. You could try tuning these to suit your needs. Here is an excellent discussion of the available parameters and how you might try adjusting them.