I just got myself a new machine to use as a dedicated database server for MotorsportReg.com. I run Postgres and wanted to figure out the fastest configuration for this machine (running a fresh install of CentOS 4.2 with non-critical daemons turned off). I ran the tests and have uploaded the results in HTML form here.
CentOS does not include XFS, JFS or Reiser by default and because I want to run the stable config in production, I stuck to testing ext3 configurations on various disk arrays and mount options. This server has 6 disks so I wanted to find the optimal configuration.
This is all drastically boring unless you’re a tuner.
The key findings are that moving the transaction log to another set of disks (not another partition on the same disk) sped up the pgbench benchmark by about 40%. Mount the partition with noatime,data=writeback and it increased the number of transactions per second by about 70%!
The best baseline test was 79.6TPS with one concurrent user on a 3-disk RAID-5 array. Before I ran the last test, the fastest improvement was 258.5TPS with 5 concurrent users with a single 2-disk RAID-1 mirror. That was kind of a fluke though as the best setup for 1, 2 and 10 users was 2, 2-disk RAID-1 mirrors placing the transaction log on one and the data on the other.
That was until I tried a 4-disk RAID-10 array for the data and placed the transaction log on the 2-disk RAID-1 array for the operating system. These results screamed with a best throughput of 393.8TPS with 2 concurrent users. See the full results.
Comments are closed.