
Thanks Arjen, While synthetic testing tools can be useful, I still think the most valuable test is one using the actual target application. Postgres, for instance, includes all sorts of techniques to try and improve disk access, and so the way it accesses the disk isn't going to be as random (or sequential) as a synthetic test. I agree that there is tuning to be done in the application to optimise it for certain storage backends - however in my experience with Pg, those adjustments tend more towards the physical setup (ie. disk cache, system cache, number of disk spindles, seek time) rather than the file system in use. I'm interested to hear examples of when this has not been the case. Also with the file systems, while there are optimal creation and mount time things that can be set (eg. noatime, nodatacow, journal mode), these only tend to make a small difference (<10%) compared to the overall filesystem performance. I'm interested in your comment that extN performs the slowest and XFS the fastest with proper configuration. My experience has been that ext4 actually performs very well - but perhaps my knowledge of how to optimally configure an ext4 system is better than for xfs. (Or perhaps Postgres has a different access pattern to MySQL?) Would you mind sharing your tips for configuring xfs optimally for a database load? I'd like to re-run my tests with them. Cheers, Toby On 15/09/11 11:40, Arjen Lentz wrote:
Hiya,
If you want to have an easy test of db-like access on a filesystem or hardware configuration, try https://launchpad.net/hdlatency which I wrote a few years back. There are no external dependencies, it's simple C.
It tests specific sequential as well as random access reads/writes in various block sizes, with and without direct I/O. When used in --quick mode it limits the tests to the specific patterns used by MySQL server.
The issue with using a more complex app (PostgreSQL, MySQL, etc) for benchmarking is that you'd need to do very specific tuning on that end also to gain optimal results.
From those filesystems mentioned, extN would tend to be slowest (do set noatime in fstab), and XFS is particularly fast when properly configured. We haven't had any clients use either zfs or btrfs so haven't delved in to that.
Cheers, Arjen.
-- .signature