randrepeat=bool For random IO workloads, seed the generator in a predictable
way so that results are repeatable across repetitions.
-fallocate=bool By default, fio will use fallocate() to advise the system
- of the size of the file we are going to write. This can be
- turned off with fallocate=0. May not be available on all
- supported platforms.
+use_os_rand=bool Fio can either use the random generator supplied by the OS
+ to generator random offsets, or it can use it's own internal
+ generator (based on Tausworthe). Default is to use the
+ internal generator, which is often of better quality and
+ faster.
+
+fallocate=str Whether pre-allocation is performed when laying down files.
+ Accepted values are:
+
+ none Do not pre-allocate space
+ posix Pre-allocate via posix_fallocate()
+ keep Pre-allocate via fallocate() with
+ FALLOC_FL_KEEP_SIZE set
+ 0 Backward-compatible alias for 'none'
+ 1 Backward-compatible alias for 'posix'
+
+ May not be available on all supported platforms. 'keep' is only
+ available on Linux.If using ZFS on Solaris this must be set to
+ 'none' because ZFS doesn't support it. Default: 'posix'.
fadvise_hint=bool By default, fio will use fadvise() to advise the kernel
on what IO patterns it is likely to issue. Sometimes you
fio will divide this size between the available files
specified by the job. If not set, fio will use the full
size of the given files or devices. If the the files
- do not exist, size must be given.
+ do not exist, size must be given. It is also possible to
+ give size as a percentage between 1 and 100. If size=20%
+ is given, fio will use 20% of the full size of the given
+ files or devices.
filesize=int Individual file sizes. May be a range, in which case fio
will select sizes for files at random within the given range
and limited to 'size' in total (if that is given). If not
given, each created file is the same size.
-fill_device=bool Sets size to something really large and waits for ENOSPC (no
+fill_device=bool
+fill_fs=bool Sets size to something really large and waits for ENOSPC (no
space left on device) as the terminating condition. Only makes
sense with sequential write. For a read workload, the mount
- point will be filled first then IO started on the result.
+ point will be filled first then IO started on the result. This
+ option doesn't make sense if operating on a raw device node,
+ since the size of that is already known by the file system.
+ Additionally, writing beyond end-of-device will not return
+ ENOSPC there.
blocksize=int
bs=int The block size used for the io units. Defaults to 4k. Values
job, can be overridden with a larger value for higher
concurrency. Note that increasing iodepth beyond 1 will not
affect synchronous ioengines (except for small degress when
- verify_async is in use). Even async engines my impose OS
+ verify_async is in use). Even async engines may impose OS
restrictions causing the desired depth not to be achieved.
This may happen on Linux when using libaio and not setting
direct=1, since buffered IO is not async on that OS. Keep an
the depth drain down to 4 before starting to fill it again.
direct=bool If value is true, use non-buffered io. This is usually
- O_DIRECT.
+ O_DIRECT. Note that ZFS on Solaris doesn't support direct io.
buffered=bool If value is true, use buffered io. This is the opposite
of the 'direct' option. Defaults to true.
option is set, fio will exit the job on the first observed
failure.
+verify_dump=bool If set, dump the contents of both the original data
+ block and the data block we read off disk to files. This
+ allows later analysis to inspect just what kind of data
+ corruption occurred. On by default.
+
verify_async=int Fio will normally verify IO inline from the submitting
thread. This option takes an integer describing how many
async offload threads to create for IO verification instead,