fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 13 different types of I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio, and more), I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, and much more. It can work on block devices as well as files. fio accepts job descriptions in a simple-to-understand text format. Several example job files are included. fio displays all sorts of I/O performance information, including complete IO latencies and percentiles. Fio is in wide use in many places, for both benchmarking, QA, and verification purposes. It supports Linux, FreeBSD, NetBSD, OS X, OpenSolaris, AIX, HP-UX, and Windows.
nitink, that should be fixed. Try upgrading, 2.0.7 was just tagged yesterday. In general, please report issues on the fio mailing list, firstname.lastname@example.org I don't watch this space very clo...
vjacheslav, there is synchronization support. See the stonewall/wait_for_previous primitive. You might also be interested in using exit_all to terminate the write part when the read part finishes.
Chris, by all means, I'm interested in widening the scope of platform support. So please send it to me (email@example.com), thanks. Jens
Hi Steve, That's a good suggestion, I'll add that feature. I would appreciate if you would send me your modifications to make it work on OS X, so I can integrate that as well! Jens
On Linux, using posix aio will not utilize the native linux aio. You need to use libaio for that.