For the mixed io types, the default is to split them 50/50.
For certain types of io the result may still be skewed a bit,
since the speed may be different. It is possible to specify
- a number of IO's to do before getting a new offset - this
- is only useful for random IO, where fio would normally
- generate a new random offset for every IO. If you append
- eg 8 to randread, you would get a new random offset for
+ a number of IO's to do before getting a new offset, this is
+ 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. See the
+ 'rw_sequencer' option.
+
+rw_sequencer=str If an offset modifier is given by appending a number to
+ the rw=<str> line, then this option controls how that
+ number modifies the IO offset being generated. Accepted
+ values are:
+
+ sequential Generate sequential offset
+ identical Generate the same offset
+
+ 'sequential' is only useful for random IO, where fio would
+ normally generate a new random offset for every IO. If you
+ append eg 8 to randread, you would get a new random offset for
every 8 IO's. The result would be a seek for only every 8
IO's, instead of for every IO. Use rw=randread:8 to specify
- that.
+ that. As sequential IO is already sequential, setting
+ 'sequential' for that would not result in any differences.
+ 'identical' behaves in a similar fashion, except it sends
+ the same offset 8 number of times before generating a new
+ offset.
kb_base=int The base unit for a kilobyte. The defacto base is 2^10, 1024.
Storage manufacturers like to use 10^3 or 1000 as a base
for how to capture such logging data. For blktrace replay,
the file needs to be turned into a blkparse binary data
file first (blkparse <device> -o /dev/null -d file_for_fio.bin).
+
+replay_no_stall=int When replaying I/O with read_iolog the default behavior
+ is to attempt to respect the time stamps within the log and replay
+ them with the appropriate delay between IOPS. By setting this variable
+ fio will not respect the timestamps and attempt to replay them as fast
+ as possible while still respecting ordering. The result is the same
+ I/O pattern to a given device, but different timings.
+
+replay_redirect=str While replaying I/O patterns using read_iolog the
+ default behavior is to replay the IOPS onto the major/minor
+ device that each IOP was recorded from. This is sometimes
+ undesireable because on a different machine those major/minor
+ numbers can map to a different device. Changing hardware on
+ the same system can also result in a different major/minor
+ mapping. Replay_redirect causes all IOPS to be replayed onto
+ the single specified device regardless of the device it was
+ recorded from. i.e. replay_redirect=/dev/sdc would cause all
+ IO in the blktrace to be replayed onto /dev/sdc. This means
+ multiple devices will be replayed onto a single, if the trace
+ contains multiple devices. If you want multiple devices to be
+ replayed concurrently to multiple redirected devices you must
+ blkparse your trace into separate traces and replay them with
+ independent fio invocations. Unfortuantely this also breaks
+ the strict time ordering between multiple device accesses.
write_bw_log=str If given, write a bandwidth log of the jobs in this job
file. Can be used to store data of the bandwidth of the
of the results, fio can output the results in a semicolon separated format.
The format is one long line of values, such as:
-client1;0;0;1906777;1090804;1790;0;0;0.000000;0.000000;0;0;0.000000;0.000000;929380;1152890;25.510151%;1078276.333333;128948.113404;0;0;0;0;0;0.000000;0.000000;0;0;0.000000;0.000000;0;0;0.000000%;0.000000;0.000000;100.000000%;0.000000%;324;100.0%;0.0%;0.0%;0.0%;0.0%;0.0%;0.0%;100.0%;0.0%;0.0%;0.0%;0.0%;0.0%
+2; client1;0;0;1906777;1090804;1790;0;0;0.000000;0.000000;0;0;0.000000;0.000000;929380;1152890;25.510151%;1078276.333333;128948.113404;0;0;0;0;0;0.000000;0.000000;0;0;0.000000;0.000000;0;0;0.000000%;0.000000;0.000000;100.000000%;0.000000%;324;100.0%;0.0%;0.0%;0.0%;0.0%;0.0%;0.0%;100.0%;0.0%;0.0%;0.0%;0.0%;0.0%
;0.0%;0.0%;0.0%;0.0%;0.0%
-To enable terse output, use the --minimal command line option.
+To enable terse output, use the --minimal command line option. The first
+value is the version of the terse output format. If the output has to
+be changed for some reason, this number will be incremented by 1 to
+signify that change.
Split up, the format is as follows:
- jobname, groupid, error
+ version, jobname, groupid, error
READ status:
KB IO, bandwidth (KB/sec), runtime (msec)
Submission latency: min, max, mean, deviation
Completion latency: min, max, mean, deviation
+ Total latency: min, max, mean, deviation
Bw: min, max, aggregate percentage of total, mean, deviation
WRITE status:
KB IO, bandwidth (KB/sec), runtime (msec)
Submission latency: min, max, mean, deviation
Completion latency: min, max, mean, deviation
+ Total latency: min, max, mean, deviation
Bw: 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