X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=HOWTO;h=a3b3acfe712aaf8a287b92647b9fbc2c97b6ebc0;hb=0a852a50c315776de0b43185e30576f15a420a24;hp=96b680dd9535c2ad89dcf35b225caf9dccd5b936;hpb=da75bad420585c6fce4e3d9a131cc34578332290;p=fio.git diff --git a/HOWTO b/HOWTO index 96b680dd..a3b3acfe 100644 --- a/HOWTO +++ b/HOWTO @@ -2163,14 +2163,48 @@ In addition, there are some parameters which are only valid when a specific with the caveat that when used on the command line, they must come after the :option:`ioengine` that defines them is selected. -.. option:: cmdprio_percentage=int : [io_uring] [libaio] - - Set the percentage of I/O that will be issued with higher priority by setting - the priority bit. Non-read I/O is likely unaffected by ``cmdprio_percentage``. - This option cannot be used with the `prio` or `prioclass` options. For this - option to set the priority bit properly, NCQ priority must be supported and - enabled and :option:`direct`\=1 option must be used. fio must also be run as - the root user. +.. option:: cmdprio_percentage=int[,int] : [io_uring] [libaio] + + Set the percentage of I/O that will be issued with the highest priority. + Default: 0. A single value applies to reads and writes. Comma-separated + values may be specified for reads and writes. For this option to be + effective, NCQ priority must be supported and enabled, and `direct=1' + option must be used. fio must also be run as the root user. + +.. option:: cmdprio_class=int[,int] : [io_uring] [libaio] + + Set the I/O priority class to use for I/Os that must be issued with + a priority when :option:`cmdprio_percentage` or + :option:`cmdprio_bssplit` is set. If not specified when + :option:`cmdprio_percentage` or :option:`cmdprio_bssplit` is set, + this defaults to the highest priority class. A single value applies + to reads and writes. Comma-separated values may be specified for + reads and writes. See :manpage:`ionice(1)`. See also the + :option:`prioclass` option. + +.. option:: cmdprio=int[,int] : [io_uring] [libaio] + + Set the I/O priority value to use for I/Os that must be issued with + a priority when :option:`cmdprio_percentage` or + :option:`cmdprio_bssplit` is set. If not specified when + :option:`cmdprio_percentage` or :option:`cmdprio_bssplit` is set, + this defaults to 0. + Linux limits us to a positive value between 0 and 7, with 0 being the + highest. A single value applies to reads and writes. Comma-separated + values may be specified for reads and writes. See :manpage:`ionice(1)`. + Refer to an appropriate manpage for other operating systems since + meaning of priority may differ. See also the :option:`prio` option. + +.. option:: cmdprio_bssplit=str[,str] : [io_uring] [libaio] + To get a finer control over I/O priority, this option allows + specifying the percentage of IOs that must have a priority set + depending on the block size of the IO. This option is useful only + when used together with the :option:`bssplit` option, that is, + multiple different block sizes are used for reads and writes. + The format for this option is the same as the format of the + :option:`bssplit` option, with the exception that values for + trim IOs are ignored. This option is mutually exclusive with the + :option:`cmdprio_percentage` option. .. option:: fixedbufs : [io_uring] @@ -2710,7 +2744,7 @@ I/O rate Stall the job for the specified period of time after an I/O has completed before issuing the next. May be used to simulate processing being done by an application. When the unit is omitted, the value is interpreted in microseconds. See - :option:`thinktime_blocks` and :option:`thinktime_spin`. + :option:`thinktime_blocks`, :option:`thinktime_iotime` and :option:`thinktime_spin`. .. option:: thinktime_spin=time @@ -2735,6 +2769,18 @@ I/O rate :option:`thinktime_blocks` blocks. If this is set to `issue`, then the trigger happens at the issue side. +.. option:: thinktime_iotime=time + + Only valid if :option:`thinktime` is set - control :option:`thinktime` + interval by time. The :option:`thinktime` stall is repeated after IOs + are executed for :option:`thinktime_iotime`. For example, + ``--thinktime_iotime=9s --thinktime=1s`` repeat 10-second cycle with IOs + for 9 seconds and stall for 1 second. When the unit is omitted, + :option:`thinktime_iotime` is interpreted as a number of seconds. If + this option is used together with :option:`thinktime_blocks`, the + :option:`thinktime` stall is repeated after :option:`thinktime_iotime` + or after :option:`thinktime_blocks` IOs, whichever happens first. + .. option:: rate=int[,int][,int] Cap the bandwidth used by this job. The number is in bytes/sec, the normal @@ -2974,12 +3020,14 @@ Threads, processes and job synchronization between 0 and 7, with 0 being the highest. See man :manpage:`ionice(1)`. Refer to an appropriate manpage for other operating systems since meaning of priority may differ. For per-command priority - setting, see I/O engine specific `cmdprio_percentage` option. + setting, see I/O engine specific :option:`cmdprio_percentage` and + :option:`cmdprio` options. .. option:: prioclass=int Set the I/O priority class. See man :manpage:`ionice(1)`. For per-command - priority setting, see I/O engine specific `cmdprio_percentage` option. + priority setting, see I/O engine specific :option:`cmdprio_percentage` + and :option:`cmdprio_class` options. .. option:: cpus_allowed=str @@ -3489,6 +3537,18 @@ Measurements and reporting :option:`write_bw_log` for details about the filename format and `Log File Formats`_ for how data is structured within the file. +.. option:: log_entries=int + + By default, fio will log an entry in the iops, latency, or bw log for + every I/O that completes. The initial number of I/O log entries is 1024. + When the log entries are all used, new log entries are dynamically + allocated. This dynamic log entry allocation may negatively impact + time-related statistics such as I/O tail latencies (e.g. 99.9th percentile + completion latency). This option allows specifying a larger initial + number of log entries to avoid run-time allocations of new log entries, + resulting in more precise time-related I/O statistics. + Also see :option:`log_avg_msec`. Defaults to 1024. + .. option:: log_avg_msec=int By default, fio will log an entry in the iops, latency, or bw log for every