fio 1.8 review
Downloadfio is an I/O tool meant to be used both for benchmark and stress/hardware verification. fio project has support for 4 different t
|
|
fio is an I/O tool meant to be used both for benchmark and stress/hardware verification.
fio project has support for 4 different types of I/O engines (sync, mmap, libaio, posixaio), 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, such as completion and submission latencies (avg/mean/deviation), bandwidth stats, cpu and disk utilization, and more.
Options:
$ fio
-s IO is sequential
-b block size in KiB for each io
-t < sec > Runtime in seconds
-r For random io, sequence must be repeatable
-R < on > If one thread fails to meet rate, quit all
-o < on > Use direct IO is 1, buffered if 0
-l Generate per-job latency logs
-w Generate per-job bandwidth logs
-f < file > Read < file > for job descriptions
Examples using a job file:
A sample job file doing the same as above would look like this:
[read_file]
rw=0
bs=4096
[write_file]
rw=1
bs=16384
And fio would be invoked as:
$ fio -o1 -s -f file_with_above
The second example would look like this:
[rf1]
rw=0
prio=6
[rf2]
rw=0
prio=3
[rf3]
rw=0
prio=0
direct=1
And fio would be invoked as:
$ fio -o0 -s -b4096 -f file_with_above
'global' is a reserved keyword. When used as the filename, it sets the default options for the threads following that section. It is possible to have more than one global section in the file, as it only affects subsequent jobs.
What's New in This Release:
An option for specifying the exact file to be used was added, to allow sharing of file(s) between threads or processes.
IO syncing was integrated into a normal read/write path.
Various IO engine bugs were fixed.
The documentation was greatly improved (including a HOWTO with detailed parameter information).
The command line and job file parsers were unified for easier scripting.
Unaligned IO is supported.
A fsx-linux sample simulation job file was added.
A crash with random map for unaligned file sizes was fixed.
Bandwidth info was added to status print.
Build fixes were made for non-Linux platforms.
Support for controlling read and write buffer sizes separately was added.
fio 1.8 keywords