X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=HOWTO;h=86fb296445f006e2f3416abe559bd5f0dc57ce19;hp=52812cc7de37e7d5d95c34c45e757c8126643709;hb=a59b12d2a5eb92c1128a5d8ebcd03b1831962ce5;hpb=8d53c5f80ac3c5709dcc4fb5332335870f8ec692 diff --git a/HOWTO b/HOWTO index 52812cc7..86fb2964 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. @@ -1146,11 +1149,31 @@ I/O type behaves in a similar fashion, except it sends the same offset 8 number of times before generating a new offset. -.. option:: unified_rw_reporting=bool +.. option:: unified_rw_reporting=str Fio normally reports statistics on a per data direction basis, meaning that - reads, writes, and trims are accounted and reported separately. If this - option is set fio sums the results and report them as "mixed" instead. + reads, writes, and trims are accounted and reported separately. This option + determines whether fio reports the results normally, summed together, or as + both options. + Accepted values are: + + **none** + Normal statistics reporting. + + **mixed** + Statistics are summed per data direction and reported together. + + **both** + Statistics are reported normally, followed by the mixed statistics. + + **0** + Backward-compatible alias for **none**. + + **1** + Backward-compatible alias for **mixed**. + + **2** + Alias for **both**. .. option:: randrepeat=bool @@ -1257,13 +1280,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 @@ -1280,7 +1304,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 @@ -1798,7 +1823,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. @@ -1832,7 +1858,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. @@ -2035,6 +2062,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 @@ -2067,6 +2099,15 @@ I/O engine unless :option:`verify` is set or :option:`cuda_io` is `posix`. :option:`iomem` must not be `cudamalloc`. This ioengine defines engine specific options. + **dfs** + 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. I/O engine specific parameters ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -2189,7 +2230,7 @@ with the caveat that when used on the command line, they must come after the this will be the starting port number since fio will use a range of ports. - [rdma] + [rdma], [librpma_*] The port to use for RDMA-CM communication. This should be the same value on the client and the server side. @@ -2200,6 +2241,20 @@ with the caveat that when used on the command line, they must come after the is a TCP listener or UDP reader, the hostname is not used and must be omitted unless it is a valid UDP multicast address. +.. option:: serverip=str : [librpma_*] + + The IP address to be used for RDMA-CM based I/O. + +.. option:: direct_write_to_pmem=bool : [librpma_*] + + 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 @@ -2296,6 +2351,12 @@ with the caveat that when used on the command line, they must come after the Poll store instead of waiting for completion. Usually this provides better throughput at cost of higher(up to 100%) CPU utilization. +.. option:: touch_objects=bool : [rados] + + During initialization, touch (create if do not exist) all objects (files). + Touching all objects affects ceph caches and likely impacts test results. + Enabled by default. + .. option:: skip_bad=bool : [mtd] Skip operations against known bad blocks. @@ -2452,6 +2513,29 @@ with the caveat that when used on the command line, they must come after the GPU to RAM before a write and copied from RAM to GPU after a read. :option:`verify` does not affect use of cudaMemcpy. +.. option:: pool=str : [dfs] + + Specify the UUID of the DAOS pool to connect to. + +.. option:: cont=str : [dfs] + + Specify the UUID of the DAOS container to open. + +.. option:: chunk_size=int : [dfs] + + Specificy a different chunk size (in bytes) for the dfs file. + Use DAOS container's chunk size by default. + +.. option:: object_class=str : [dfs] + + 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. + I/O depth ~~~~~~~~~ @@ -2663,11 +2747,12 @@ I/O latency true, fio will continue running and try to meet :option:`latency_target` by adjusting queue depth. -.. option:: max_latency=time +.. option:: max_latency=time[,time][,time] If set, fio will exit the job with an ETIMEDOUT error if it exceeds this maximum latency. When the unit is omitted, the value is interpreted in - microseconds. + microseconds. Comma-separated values may be specified for reads, writes, + and trims as described in :option:`blocksize`. .. option:: rate_cycle=int