+disable_lat=bool Disable measurements of total latency numbers. Useful
+ only for cutting back the number of calls to gettimeofday,
+ as that does impact performance at really high IOPS rates.
+ Note that to really get rid of a large amount of these
+ calls, this option must be used with disable_slat and
+ disable_bw as well.
+
+disable_clat=bool Disable measurements of completion latency numbers. See
+ disable_lat.
+
+disable_slat=bool Disable measurements of submission latency numbers. See
+ disable_slat.
+
+disable_bw=bool Disable measurements of throughput/bandwidth numbers. See
+ disable_lat.
+
+clat_percentiles=bool Enable the reporting of percentiles of
+ completion latencies.
+
+percentile_list=float_list Overwrite the default list of percentiles
+ for completion latencies. Each number is a floating
+ number in the range (0,100], and the maximum length of
+ the list is 20. Use ':' to separate the numbers, and
+ list the numbers in ascending order. For example,
+ --percentile_list=99.5:99.9 will cause fio to report
+ the values of completion latency below which 99.5% and
+ 99.9% of the observed latencies fell, respectively.
+
+clocksource=str Use the given clocksource as the base of timing. The
+ supported options are:
+
+ gettimeofday gettimeofday(2)
+
+ clock_gettime clock_gettime(2)
+
+ cpu Internal CPU clock source
+
+ cpu is the preferred clocksource if it is reliable, as it
+ is very fast (and fio is heavy on time calls). Fio will
+ automatically use this clocksource if it's supported and
+ considered reliable on the system it is running on, unless
+ another clocksource is specifically set. For x86/x86-64 CPUs,
+ this means supporting TSC Invariant.
+
+gtod_reduce=bool Enable all of the gettimeofday() reducing options
+ (disable_clat, disable_slat, disable_bw) plus reduce
+ precision of the timeout somewhat to really shrink
+ the gettimeofday() call count. With this option enabled,
+ we only do about 0.4% of the gtod() calls we would have
+ done if all time keeping was enabled.
+
+gtod_cpu=int Sometimes it's cheaper to dedicate a single thread of
+ execution to just getting the current time. Fio (and
+ databases, for instance) are very intensive on gettimeofday()
+ calls. With this option, you can set one CPU aside for
+ doing nothing but logging current time to a shared memory
+ location. Then the other threads/processes that run IO
+ workloads need only copy that segment, instead of entering
+ the kernel with a gettimeofday() call. The CPU set aside
+ for doing these time calls will be excluded from other
+ uses. Fio will manually clear it from the CPU mask of other
+ jobs.
+
+continue_on_error=str Normally fio will exit the job on the first observed
+ failure. If this option is set, fio will continue the job when
+ there is a 'non-fatal error' (EIO or EILSEQ) until the runtime
+ is exceeded or the I/O size specified is completed. If this
+ option is used, there are two more stats that are appended,
+ the total error count and the first error. The error field
+ given in the stats is the first error that was hit during the
+ run.
+
+ The allowed values are:
+
+ none Exit on any IO or verify errors.
+
+ read Continue on read errors, exit on all others.
+
+ write Continue on write errors, exit on all others.
+
+ io Continue on any IO error, exit on all others.
+
+ verify Continue on verify errors, exit on all others.
+
+ all Continue on all errors.
+
+ 0 Backward-compatible alias for 'none'.
+
+ 1 Backward-compatible alias for 'all'.
+
+ignore_error=str Sometimes you want to ignore some errors during test
+ in that case you can specify error list for each error type.
+ ignore_error=READ_ERR_LIST,WRITE_ERR_LIST,VERIFY_ERR_LIST
+ errors for given error type is separated with ':'. Error
+ may be symbol ('ENOSPC', 'ENOMEM') or integer.
+ Example:
+ ignore_error=EAGAIN,ENOSPC:122
+ This option will ignore EAGAIN from READ, and ENOSPC and
+ 122(EDQUOT) from WRITE.
+
+error_dump=bool If set dump every error even if it is non fatal, true
+ by default. If disabled only fatal error will be dumped
+
+cgroup=str Add job to this control group. If it doesn't exist, it will
+ be created. The system must have a mounted cgroup blkio
+ mount point for this to work. If your system doesn't have it
+ mounted, you can do so with:
+
+ # mount -t cgroup -o blkio none /cgroup
+
+cgroup_weight=int Set the weight of the cgroup to this value. See
+ the documentation that comes with the kernel, allowed values
+ are in the range of 100..1000.
+
+cgroup_nodelete=bool Normally fio will delete the cgroups it has created after
+ the job completion. To override this behavior and to leave
+ cgroups around after the job completion, set cgroup_nodelete=1.
+ This can be useful if one wants to inspect various cgroup
+ files after job completion. Default: false
+
+uid=int Instead of running as the invoking user, set the user ID to
+ this value before the thread/process does any work.
+
+gid=int Set group ID, see uid.
+
+flow_id=int The ID of the flow. If not specified, it defaults to being a
+ global flow. See flow.
+
+flow=int Weight in token-based flow control. If this value is used, then
+ there is a 'flow counter' which is used to regulate the
+ proportion of activity between two or more jobs. fio attempts
+ to keep this flow counter near zero. The 'flow' parameter
+ stands for how much should be added or subtracted to the flow
+ counter on each iteration of the main I/O loop. That is, if
+ one job has flow=8 and another job has flow=-1, then there
+ will be a roughly 1:8 ratio in how much one runs vs the other.
+
+flow_watermark=int The maximum value that the absolute value of the flow
+ counter is allowed to reach before the job must wait for a
+ lower value of the counter.
+
+flow_sleep=int The period of time, in microseconds, to wait after the flow
+ watermark has been exceeded before retrying operations
+
+In addition, there are some parameters which are only valid when a specific
+ioengine is in use. These are used identically to normal parameters, with the
+caveat that when used on the command line, they must come after the ioengine
+that defines them is selected.
+
+[libaio] userspace_reap Normally, with the libaio engine in use, fio will use
+ the io_getevents system call to reap newly returned events.
+ With this flag turned on, the AIO ring will be read directly
+ from user-space to reap events. The reaping mode is only
+ enabled when polling for a minimum of 0 events (eg when
+ iodepth_batch_complete=0).
+
+[cpu] cpuload=int Attempt to use the specified percentage of CPU cycles.
+
+[cpu] cpuchunks=int Split the load into cycles of the given time. In
+ microseconds.
+
+[netsplice] hostname=str
+[net] hostname=str The host name or IP address to use for TCP or UDP based IO.
+ If the job is a TCP listener or UDP reader, the hostname is not
+ used and must be omitted.
+
+[netsplice] port=int
+[net] port=int The TCP or UDP port to bind to or connect to.
+
+[netsplice] nodelay=bool
+[net] nodelay=bool Set TCP_NODELAY on TCP connections.
+
+[netsplice] protocol=str
+[netsplice] proto=str
+[net] protocol=str
+[net] proto=str The network protocol to use. Accepted values are:
+
+ tcp Transmission control protocol
+ udp User datagram protocol
+ unix UNIX domain socket
+
+ When the protocol is TCP or UDP, the port must also be given,
+ as well as the hostname if the job is a TCP listener or UDP
+ reader. For unix sockets, the normal filename option should be
+ used and the port is invalid.
+
+[net] listen For TCP network connections, tell fio to listen for incoming
+ connections rather than initiating an outgoing connection. The
+ hostname must be omitted if this option is used.
+[net] pingpong Normal a network writer will just continue writing data, and
+ a network reader will just consume packages. If pingpong=1
+ is set, a writer will send its normal payload to the reader,
+ then wait for the reader to send the same payload back. This
+ allows fio to measure network latencies. The submission
+ and completion latencies then measure local time spent
+ sending or receiving, and the completion latency measures
+ how long it took for the other end to receive and send back.
+
+[e4defrag] donorname=str
+ File will be used as a block donor(swap extents between files)
+[e4defrag] inplace=int
+ Configure donor file blocks allocation strategy
+ 0(default): Preallocate donor's file on init
+ 1 : allocate space immidietly inside defragment event,
+ and free right after event
+
+