------------
$ fio
+ --debug Enable some debugging options (see below)
--output Write output to file
- --runtime Runtime in seconds
+ --timeout Runtime in seconds
--latency-log Generate per-job latency logs
--bandwidth-log Generate per-job bandwidth logs
--minimal Minimal (terse) output
--help Print this page
--cmdhelp=cmd Print command help, "all" for all of them
--showcmd Turn a job file into command line options
- --readonly Turn on safety read-only checks
+ --readonly Turn on safety read-only checks, preventing writes
+ --eta=when When ETA estimate should be printed
+ May be "always", "never" or "auto"
+ --section=name Only run specified section in job file
+
Any parameters following the options will be assumed to be job files,
unless they match a job file parameter. You can add as many as you want,
be used as an extra precaution. It will also enable a write check in the
io engine core to prevent an accidental write due to a fio bug.
+The debug switch allows adding options that trigger certain logging
+options in fio. Currently the options are:
+
+ process Dump info related to processes
+ file Dump info related to file actions
+ io Dump info related to IO queuing
+ mem Dump info related to memory allocations
+ blktrace Dump info related to blktrace setup
+ verify Dump info related to IO verification
+ all Enable all debug options
+ random Dump info related to random offset generation
+ parse Dump info related to option matching and parsing
+ diskutil Dump info related to disk utilization updates
+ ? or help Show available debug options.
+
+You can specify as many as you want, eg --debug=file,mem will enable
+file and memory debugging.
+
+The section switch is meant to make it easier to ship a bigger job file
+instead of several smaller ones. Say you define a job file with light,
+moderate, and heavy parts. Then you can ask fio to run the given part
+only by giving it a --section=heavy command line option. The section
+option only applies to job sections, the reserved 'global' section is
+always parsed and taken into account.
+
Job file
--------
size=x Set file size to x bytes (x string can include k/m/g)
ioengine=x 'x' may be: aio/libaio/linuxaio for Linux aio,
posixaio for POSIX aio, sync for regular read/write io,
- mmap for mmap'ed io, syslet-rw for syslet driven
- read/write, splice for using splice/vmsplice,
- sgio for direct SG_IO io, net for network io, or cpuio
- for a cycler burner load. sgio only works on Linux on
- SCSI (or SCSI-like devices, such as usb-storage or
- sata/libata driven) devices. Fio also has a null io
- engine, which is mainly used for testing fio itself.
+ psync for regular pread/pwrite io, vsync for regular
+ readv/writev (with queuing emulation) mmap for mmap'ed
+ io, syslet-rw for syslet driven read/write, splice for
+ using splice/vmsplice, sgio for direct SG_IO io, net
+ for network io, or cpuio for a cycler burner load. sgio
+ only works on Linux on SCSI (or SCSI-like devices, such
+ as usb-storage or sata/libata driven) devices. Fio also
+ has a null io engine, which is mainly used for testing
+ fio itself.
+
iodepth=x For async io, allow 'x' ios in flight
overwrite=x If 'x', layout a write file first.
nrfiles=x Spread io load over 'x' number of files per job,