+ 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
+ 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
+ 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.
+ 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. 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
+ ten unit instead, for obvious reasons. Allow values are
+ 1024 or 1000, with 1024 being the default.
+
+randrepeat=bool For random IO workloads, seed the generator in a predictable
+ way so that results are repeatable across repetitions.
+
+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
+ want to test specific IO patterns without telling the
+ kernel about it, in which case you can disable this option.
+ If set, fio will use POSIX_FADV_SEQUENTIAL for sequential
+ IO and POSIX_FADV_RANDOM for random IO.
+
+size=int The total size of file io for this job. Fio will run until
+ this many bytes has been transferred, unless runtime is
+ limited by other options (such as 'runtime', for instance).
+ Unless specific nrfiles and filesize options are given,
+ 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. 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
+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. 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
+ can be given for both read and writes. If a single int is
+ given, it will apply to both. If a second int is specified
+ after a comma, it will apply to writes only. In other words,
+ the format is either bs=read_and_write or bs=read,write.
+ bs=4k,8k will thus use 4k blocks for reads, and 8k blocks
+ for writes. If you only wish to set the write size, you
+ can do so by passing an empty read size - bs=,8k will set
+ 8k for writes and leave the read default value.
+
+blockalign=int
+ba=int At what boundary to align random IO offsets. Defaults to
+ the same as 'blocksize' the minimum blocksize given.
+ Minimum alignment is typically 512b for using direct IO,
+ though it usually depends on the hardware block size. This
+ option is mutually exclusive with using a random map for
+ files, so it will turn off that option.
+
+blocksize_range=irange
+bsrange=irange Instead of giving a single block size, specify a range
+ and fio will mix the issued io block sizes. The issued
+ io unit will always be a multiple of the minimum value
+ given (also see bs_unaligned). Applies to both reads and
+ writes, however a second range can be given after a comma.
+ See bs=.