opendir=str Tell fio to recursively add any file it can find in this
directory and down the file system tree.
+lockfile=str Fio defaults to not doing any locking files before it does
+ IO to them. If a file or file descriptor is shared, fio
+ can serialize IO to that file to make the end result
+ consistent. This is usual for emulating real workloads that
+ share files. The lock modes are:
+
+ none No locking. The default.
+ exclusive Only one thread/process may do IO,
+ excluding all others.
+ readwrite Read-write locking on the file. Many
+ readers may access the file at the
+ same time, but writes get exclusive
+ access.
+
+ The option may be post-fixed with a lock batch number. If
+ set, then each thread/process may do that amount of IOs to
+ the file before giving up the lock. Since lock acqusition is
+ expensive, batching the lock/unlocks will speed up IO.
+
readwrite=str
rw=str Type of io pattern. Accepted values are:
psync Basic pread(2) or pwrite(2) io.
+ vsync Basic readv(2) or writev(2) IO.
+
libaio Linux native asynchronous io.
posixaio glibc posix asynchronous io.
cycles according to the cpuload= and
cpucycle= options. Setting cpuload=85
will cause that job to do nothing but burn
- 85% of the CPU.
+ 85% of the CPU. In case of SMP machines,
+ use numjobs=<no_of_cpu> to get desired CPU
+ usage, as the cpuload only loads a single
+ CPU at the desired rate.
guasi The GUASI IO engine is the Generic Userspace
Asyncronous Syscall Interface approach
concurrency.
iodepth_batch=int This defines how many pieces of IO to submit at once.
- It defaults to the same as iodepth, but can be set lower
- if one so desires.
+ It defaults to 1 which means that we submit each IO
+ as soon as it is available, but can be raised to submit
+ bigger batches of IO at the time.
iodepth_low=int The low water mark indicating when to start filling
the queue again. Defaults to the same as iodepth, meaning
fio doesn't track potential block rewrites which may alter
the calculated checksum for that block.
+softrandommap See norandommap. If fio runs with the random block map enabled
+ and it fails to allocate the map, if this option is set it
+ will continue without a random block map. As coverage will
+ not be as complete as with random maps, this option is
+ disabled by default.
+
nice=int Run the job with the given nice value. See man nice(2).
prio=int Set the io priority value of this job. Linux limits us to
(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.
size of header_interval. blocksize should divide this
evenly.
+verify_pattern=int If set, fio will fill the io buffers with this
+ pattern. Fio defaults to filling with totally random
+ bytes, but sometimes it's interesting to fill with a known
+ pattern for io verification purposes. Depending on the
+ width of the pattern, fio will fill 1/2/3/4 bytes of the
+ buffer at the time. The verify_pattern cannot be larger than
+ a 32-bit quantity.
+
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