write Sequential writes
randwrite Random writes
randread Random reads
- rw Sequential mixed reads and writes
+ rw,readwrite Sequential mixed reads and writes
randrw Random mixed reads and writes
For the mixed io types, the default is to split them 50/50.
one by appending a ':<nr>' to the end of the string given.
For a random read, it would look like 'rw=randread:8' for
passing in an offset modifier with a value of 8. If the
- postfix is used with a sequential IO pattern, then the value
+ suffix is used with a sequential IO pattern, then the value
specified will be added to the generated offset for each IO.
For instance, using rw=write:4k will skip 4k for every
write. It turns sequential IO into sequential IO with holes.
file. Can be used to store data of the bandwidth of the
jobs in their lifetime. The included fio_generate_plots
script uses gnuplot to turn these text files into nice
- graphs. See write_log_log for behaviour of given
- filename. For this option, the postfix is _bw.log.
+ graphs. See write_lat_log for behaviour of given
+ filename. For this option, the suffix is _bw.log.
write_lat_log=str Same as write_bw_log, except that this option stores io
submission, completion, and total latencies instead. If no
F Running, currently waiting for fsync()
V Running, doing verification of written data.
E Thread exited, not reaped by main thread yet.
-_ Thread reaped.
+_ Thread reaped, or
+X Thread reaped, exited with an error.
+K Thread reaped, exited due to signal.
The other values are fairly self explanatory - number of threads
currently running and doing io, rate of io since last check (read speed
listed first, then write speed), and the estimated completion percentage
and time for the running group. It's impossible to estimate runtime of
-the following groups (if any).
+the following groups (if any). Note that the string is displayed in order,
+so it's possible to tell which of the jobs are currently doing what. The
+first character is the first job defined in the job file, and so forth.
When fio is done (or interrupted by ctrl-c), it will show the data for
each thread, group of threads, and disks in that order. For each data
latency, since queue/complete is one operation there. This
value can be in milliseconds or microseconds, fio will choose
the most appropriate base and print that. In the example
- above, milliseconds is the best scale.
+ above, milliseconds is the best scale. Note: in --minimal mode
+ latencies are always expressed in microseconds.
clat= Completion latency. Same names as slat, this denotes the
time from submission to completion of the io pieces. For
sync io, clat will usually be equal (or very close) to 0,
util= The disk utilization. A value of 100% means we kept the disk
busy constantly, 50% would be a disk idling half of the time.
+It is also possible to get fio to dump the current output while it is
+running, without terminating the job. To do that, send fio the USR1 signal.
+
7.0 Terse output
----------------
terse version, fio version, jobname, groupid, error
READ status:
Total IO (KB), bandwidth (KB/sec), IOPS, runtime (msec)
- Submission latency: min, max, mean, deviation
- Completion latency: min, max, mean, deviation
+ Submission latency: min, max, mean, deviation (usec)
+ Completion latency: min, max, mean, deviation (usec)
Completion latency percentiles: 20 fields (see below)
- Total latency: min, max, mean, deviation
- Bw: min, max, aggregate percentage of total, mean, deviation
+ Total latency: min, max, mean, deviation (usec)
+ Bw (KB/s): min, max, aggregate percentage of total, mean, deviation
WRITE status:
Total IO (KB), bandwidth (KB/sec), IOPS, runtime (msec)
- Submission latency: min, max, mean, deviation
- Completion latency: min, max, mean, deviation
+ Submission latency: min, max, mean, deviation (usec)
+ Completion latency: min, max, mean, deviation (usec)
Completion latency percentiles: 20 fields (see below)
- Total latency: min, max, mean, deviation
- Bw: min, max, aggregate percentage of total, mean, deviation
+ Total latency: min, max, mean, deviation (usec)
+ Bw (KB/s): min, max, aggregate percentage of total, mean, deviation
CPU usage: user, system, context switches, major faults, minor faults
IO depths: <=1, 2, 4, 8, 16, 32, >=64
IO latencies microseconds: <=2, 4, 10, 20, 50, 100, 250, 500, 750, 1000