a string. The following types are used:
str String. This is a sequence of alpha characters.
-int Integer. A whole number value, can be negative.
+int Integer. A whole number value, can be negative. If prefixed with
+ 0x, the integer is assumed to be of base 16 (hexidecimal).
siint SI integer. A whole number value, which may contain a postfix
describing the base of the number. Accepted postfixes are k/m/g,
meaning kilo, mega, and giga. So if you want to specify 4096,
to repeat the same workload a given number of times. Defaults
to 1.
+do_verify=bool Run the verify phase after a write phase. Only makes sense if
+ verify is set. Defaults to 1.
+
verify=str If writing to a file, fio can verify the file contents
after each iteration of the job. The allowed values are:
md5 Use an md5 sum of the data area and store
it in the header of each block.
+ crc64 Use an experimental crc64 sum of the data
+ area and store it in the header of each
+ block.
+
crc32 Use a crc32 sum of the data area and store
it in the header of each block.
+ crc16 Use a crc16 sum of the data area and store
+ it in the header of each block.
+
+ crc7 Use a crc7 sum of the data area and store
+ it in the header of each block.
+
+ sha512 Use sha512 as the checksum function.
+
+ sha256 Use sha256 as the checksum function.
+
+ meta Write extra information about each io
+ (timestamp, block number etc.). The block
+ number is verified.
+
+ pattern Fill the IO buffers with a specific pattern,
+ that we can use to verify. Depending on the
+ width of the pattern, fio will fill 1/2/3/4
+ bytes of the buffer at the time. The pattern
+ cannot be larger than a 32-bit quantity. The
+ given pattern is given as a postfix to this
+ option, ala: verify=pattern:0x5a. It accepts
+ both hex and dec values.
+
null Only pretend to verify. Useful for testing
internals with ioengine=null, not for much
else.
can ignore this option unless doing huge amounts of really
fast IO where the red-black tree sorting CPU time becomes
significant.
+
+verify_offset=siint Swap the verification header with data somewhere else
+ in the block before writing. Its swapped back before
+ verifying.
+
+verify_interval=siint Write the verification header at a finer granularity
+ than the blocksize. It will be written for chunks the
+ size of header_interval. blocksize should divide this
+ evenly.
+
+verify_fatal=bool Normally fio will keep checking the entire contents
+ before quitting on a block verification failure. If this
+ option is set, fio will exit the job on the first observed
+ failure.
stonewall Wait for preceeding jobs in the job file to exit, before
starting this one. Can be used to insert serialization
_ Thread reaped.
The other values are fairly self explanatory - number of threads
-currently running and doing io, rate of io since last check, and the estimated
-completion percentage and time for the running group. It's impossible to
-estimate runtime of the following groups (if any).
+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).
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
slat (msec): min= 0, max= 136, avg= 0.03, stdev= 1.92
clat (msec): min= 0, max= 631, avg=48.50, stdev=86.82
bw (KiB/s) : min= 0, max= 1196, per=51.00%, avg=664.02, stdev=681.68
- cpu : usr=1.49%, sys=0.25%, ctx=7969
+ cpu : usr=1.49%, sys=0.25%, ctx=7969, majf=0, minf=17
IO depths : 1=0.1%, 2=0.3%, 4=0.5%, 8=99.0%, 16=0.0%, 32=0.0%, >32=0.0%
issued r/w: total=0/32768, short=0/0
lat (msec): 2=1.6%, 4=0.0%, 10=3.2%, 20=12.8%, 50=38.4%, 100=24.8%,
only really useful if the threads in this group are on the
same disk, since they are then competing for disk access.
cpu= CPU usage. User and system time, along with the number
- of context switches this thread went through.
+ of context switches this thread went through, usage of
+ system and user time, and finally the number of major
+ and minor page faults.
IO depths= The distribution of io depths over the job life time. The
numbers are divided into powers of 2, so for example the
16= entries includes depths up to that value but higher