X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=HOWTO;h=d4e620de50b5b178af1612af7837f2035574c33c;hb=cb765e413e4d124355c3eec47f7ac8cd314a6951;hp=2788670ddb8df32e74569fe723cca58489fe8beb;hpb=1588c8f571f67a004571e51cdbb5de97c3e4f457;p=fio.git diff --git a/HOWTO b/HOWTO index 2788670d..d4e620de 100644 --- a/HOWTO +++ b/HOWTO @@ -544,6 +544,9 @@ Parameter types * *Ti* -- means tebi (Ti) or 1024**4 * *Pi* -- means pebi (Pi) or 1024**5 + For Zone Block Device Mode: + * *z* -- means Zone + With :option:`kb_base`\=1024 (the default), the unit prefixes are opposite from those specified in the SI and IEC 80000-13 standards to provide compatibility with old scripts. For example, 4k means 4096. @@ -1052,6 +1055,11 @@ Target file/device number of open zones is defined as the number of zones to which write commands are issued. +.. option:: job_max_open_zones=int + + Limit on the number of simultaneously opened zones per single + thread/process. + .. option:: zone_reset_threshold=float A number between zero and one that indicates the ratio of logical @@ -1168,7 +1176,7 @@ I/O type **1** Backward-compatible alias for **mixed**. - + **2** Alias for **both**. @@ -1277,13 +1285,14 @@ I/O type .. option:: offset=int Start I/O at the provided offset in the file, given as either a fixed size in - bytes or a percentage. If a percentage is given, the generated offset will be + bytes, zones or a percentage. If a percentage is given, the generated offset will be aligned to the minimum ``blocksize`` or to the value of ``offset_align`` if provided. Data before the given offset will not be touched. This effectively caps the file size at `real_size - offset`. Can be combined with :option:`size` to constrain the start and end range of the I/O workload. A percentage can be specified by a number between 1 and 100 followed by '%', - for example, ``offset=20%`` to specify 20%. + for example, ``offset=20%`` to specify 20%. In ZBD mode, value can be set as + number of zones using 'z'. .. option:: offset_align=int @@ -1300,7 +1309,8 @@ I/O type intended to operate on a file in parallel disjoint segments, with even spacing between the starting points. Percentages can be used for this option. If a percentage is given, the generated offset will be aligned to the minimum - ``blocksize`` or to the value of ``offset_align`` if provided. + ``blocksize`` or to the value of ``offset_align`` if provided. In ZBD mode, value can + also be set as number of zones using 'z'. .. option:: number_ios=int @@ -1700,6 +1710,36 @@ Buffers and memory this option will also enable :option:`refill_buffers` to prevent every buffer being identical. +.. option:: dedupe_mode=str + + If ``dedupe_percentage=`` is given, then this option controls how fio + generates the dedupe buffers. + + **repeat** + Generate dedupe buffers by repeating previous writes + **working_set** + Generate dedupe buffers from working set + + ``repeat`` is the default option for fio. Dedupe buffers are generated + by repeating previous unique write. + + ``working_set`` is a more realistic workload. + With ``working_set``, ``dedupe_working_set_percentage=`` should be provided. + Given that, fio will use the initial unique write buffers as its working set. + Upon deciding to dedupe, fio will randomly choose a buffer from the working set. + Note that by using ``working_set`` the dedupe percentage will converge + to the desired over time while ``repeat`` maintains the desired percentage + throughout the job. + +.. option:: dedupe_working_set_percentage=int + + If ``dedupe_mode=`` is set to ``working_set``, then this controls + the percentage of size of the file or device used as the buffers + fio will choose to generate the dedupe buffers from + + Note that size needs to be explicitly provided and only 1 file per + job is supported + .. option:: invalidate=bool Invalidate the buffer/page cache parts of the files to be used prior to @@ -1818,7 +1858,8 @@ I/O size If this option is not specified, fio will use the full size of the given files or devices. If 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. + given, fio will use 20% of the full size of the given files or devices. + In ZBD mode, value can also be set as number of zones using 'z'. Can be combined with :option:`offset` to constrain the start and end range that I/O will be done within. @@ -1852,7 +1893,8 @@ I/O size .. option:: 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 + device) or EDQUOT (disk quota exceeded) + as the terminating condition. Only makes sense with sequential write. For a read workload, the mount point will be filled first then I/O 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. @@ -2055,6 +2097,11 @@ I/O engine and 'nrfiles', so that files will be created. This engine is to measure file lookup and meta data access. + **filedelete** + Simply delete the files by unlink() and do no I/O to them. You need to set 'filesize' + and 'nrfiles', so that the files will be created. + This engine is to measure file delete. + **libpmem** Read and write using mmap I/O to a file on a filesystem mounted with DAX on a persistent memory device through the PMDK @@ -2091,6 +2138,15 @@ I/O engine I/O engine supporting asynchronous read and write operations to the DAOS File System (DFS) via libdfs. + **nfs** + I/O engine supporting asynchronous read and write operations to + NFS filesystems from userspace via libnfs. This is useful for + achieving higher concurrency and thus throughput than is possible + via kernel NFS. + + **exec** + Execute 3rd party tools. Could be used to perform monitoring during jobs runtime. + I/O engine specific parameters ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2232,6 +2288,11 @@ with the caveat that when used on the command line, they must come after the Set to 1 only when Direct Write to PMem from the remote host is possible. Otherwise, set to 0. +.. option:: busy_wait_polling=bool : [librpma_*_server] + + Set to 0 to wait for completion instead of busy-wait polling completion. + Default: 1. + .. option:: interface=str : [netsplice] [net] The IP address of the network interface used to send or receive UDP @@ -2508,6 +2569,33 @@ with the caveat that when used on the command line, they must come after the Specificy a different object class for the dfs file. Use DAOS container's object class by default. +.. option:: nfs_url=str : [nfs] + + URL in libnfs format, eg nfs:///path[?arg=val[&arg=val]*] + Refer to the libnfs README for more details. + +.. option:: program=str : [exec] + + Specify the program to execute. + +.. option:: arguments=str : [exec] + + Specify arguments to pass to program. + Some special variables can be expanded to pass fio's job details to the program. + + **%r** + Replaced by the duration of the job in seconds. + **%n** + Replaced by the name of the job. + +.. option:: grace_time=int : [exec] + + Specify the time between the SIGTERM and SIGKILL signals. Default is 1 second. + +.. option:: std_redirect=boot : [exec] + + If set, stdout and stderr streams are redirected to files named from the job name. Default is true. + I/O depth ~~~~~~~~~