X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.1;h=c59a80020bf25f0ff035f09bd3c4a5c31168fc1f;hp=e361b05fa1f924228a02b7bc9698e7007acaa0c0;hb=5561e9dddca8479f182f0269a760dcabe7ff59ad;hpb=6cc78de0059146ed2344438b16ffff28fed42915 diff --git a/fio.1 b/fio.1 index e361b05f..c59a8002 100644 --- a/fio.1 +++ b/fio.1 @@ -348,6 +348,9 @@ us or usec means microseconds .PD .RE .P +`z' suffix specifies that the value is measured in zones. +Value is recalculated once block device's zone size becomes known. +.P If the option accepts an upper and lower range, use a colon ':' or minus '\-' to separate such values. See \fIirange\fR parameter type. If the lower value specified happens to be larger than the upper value @@ -584,6 +587,9 @@ string: .B $jobname The name of the worker thread or process. .TP +.B $clientuid +IP of the fio process when using client/server mode. +.TP .B $jobnum The incremental number of the worker thread or process. .TP @@ -780,7 +786,7 @@ If not specified it defaults to the zone size. If the target device is a zoned block device, the zone capacity is obtained from the device information and this option is ignored. .TP -.BI zoneskip \fR=\fPint +.BI zoneskip \fR=\fPint[z] For \fBzonemode\fR=strided, the number of bytes to skip after \fBzonesize\fR bytes of data have been transferred. @@ -918,10 +924,32 @@ behaves in a similar fashion, except it sends the same offset 8 number of times before generating a new offset. .RE .TP -.BI unified_rw_reporting \fR=\fPbool +.BI unified_rw_reporting \fR=\fPstr 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: +.RS +.TP +.B none +Normal statistics reporting. +.TP +.B mixed +Statistics are summed per data direction and reported together. +.TP +.B both +Statistics are reported normally, followed by the mixed statistics. +.TP +.B 0 +Backward-compatible alias for \fBnone\fR. +.TP +.B 1 +Backward-compatible alias for \fBmixed\fR. +.TP +.B 2 +Alias for \fBboth\fR. +.RE .TP .BI randrepeat \fR=\fPbool Seed the random number generator used for random I/O patterns in a @@ -1030,7 +1058,7 @@ The values are all relative to each other, and no absolute meaning should be associated with them. .RE .TP -.BI offset \fR=\fPint +.BI offset \fR=\fPint[%|z] 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 aligned to the minimum \fBblocksize\fR or to the value of \fBoffset_align\fR if @@ -1045,7 +1073,7 @@ If set to non-zero value, the byte offset generated by a percentage \fBoffset\fR is aligned upwards to this value. Defaults to 0 meaning that a percentage offset is aligned to the minimum block size. .TP -.BI offset_increment \fR=\fPint +.BI offset_increment \fR=\fPint[%|z] If this is provided, then the real offset becomes `\fBoffset\fR + \fBoffset_increment\fR * thread_number', where the thread number is a counter that starts at 0 and is incremented for each sub-job (i.e. when \fBnumjobs\fR option is @@ -1132,7 +1160,7 @@ first. This may interfere with a given rate setting, if fio is asked to limit reads or writes to a certain rate. If that is the case, then the distribution may be skewed. Default: 50. .TP -.BI random_distribution \fR=\fPstr:float[,str:float][,str:float] +.BI random_distribution \fR=\fPstr:float[:float][,str:float][,str:float] By default, fio will use a completely uniform random distribution when asked to perform random I/O. Sometimes it is useful to skew the distribution in specific ways, ensuring that some parts of the data is more hot than others. @@ -1168,6 +1196,14 @@ option. If a non\-uniform model is used, fio will disable use of the random map. For the \fBnormal\fR distribution, a normal (Gaussian) deviation is supplied as a value between 0 and 100. .P +The second, optional float is allowed for \fBpareto\fR, \fBzipf\fR and \fBnormal\fR +distributions. It allows to set base of distribution in non-default place, giving +more control over most probable outcome. This value is in range [0-1] which maps linearly to +range of possible random values. +Defaults are: random for \fBpareto\fR and \fBzipf\fR, and 0.5 for \fBnormal\fR. +If you wanted to use \fBzipf\fR with a `theta` of 1.2 centered on 1/4 of allowed value range, +you would use `random_distibution=zipf:1.2:0.25`. +.P For a \fBzoned\fR distribution, fio supports specifying percentages of I/O access that should fall within what range of the file or device. For example, given a criteria of: @@ -1559,7 +1595,7 @@ Pin the specified amount of memory with \fBmlock\fR\|(2). Can be used to simulate a smaller amount of memory. The amount specified is per worker. .SS "I/O size" .TP -.BI size \fR=\fPint +.BI size \fR=\fPint[%|z] The total size of file I/O for each thread of this job. Fio will run until this many bytes has been transferred, unless runtime is limited by other options (such as \fBruntime\fR, for instance, or increased/decreased by \fBio_size\fR). @@ -1574,7 +1610,7 @@ given, fio will use 20% of the full size of the given files or devices. Can be combined with \fBoffset\fR to constrain the start and end range that I/O will be done within. .TP -.BI io_size \fR=\fPint "\fR,\fB io_limit" \fR=\fPint +.BI io_size \fR=\fPint[%|z] "\fR,\fB io_limit" \fR=\fPint[%|z] Normally fio operates within the region set by \fBsize\fR, which means that the \fBsize\fR option sets both the region and size of I/O to be performed. Sometimes that is not what you want. With this option, it is @@ -1811,6 +1847,11 @@ Simply do stat() and do no I/O to the file. You need to set 'filesize' and 'nrfiles', so that files will be created. This engine is to measure file lookup and meta data access. .TP +.B filedelete +Simply delete files by unlink() and do no I/O to the file. You need to set 'filesize' +and 'nrfiles', so that files will be created. +This engine is to measure file delete. +.TP .B 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 @@ -1842,6 +1883,10 @@ GPUDirect Storage-supported filesystem. This engine performs I/O without transferring buffers between user-space and the kernel, unless \fBverify\fR is set or \fBcuda_io\fR is \fBposix\fR. \fBiomem\fR must not be \fBcudamalloc\fR. This ioengine defines engine specific options. +.TP +.B dfs +I/O engine supporting asynchronous read and write operations to the DAOS File +System (DFS) via libdfs. .SS "I/O engine specific parameters" In addition, there are some parameters which are only valid when a specific \fBioengine\fR is in use. These are used identically to normal parameters, @@ -1938,7 +1983,7 @@ The TCP or UDP port to bind to or connect to. If this is used with this will be the starting port number since fio will use a range of ports. .TP -.BI (rdma)port +.BI (rdma, librpma_*)port The port to use for RDMA-CM communication. This should be the same value on the client and the server side. .TP @@ -1947,6 +1992,12 @@ The hostname or IP address to use for TCP, UDP or RDMA-CM based I/O. If the job is a TCP listener or UDP reader, the hostname is not used and must be omitted unless it is a valid UDP multicast address. .TP +.BI (librpma_*)serverip \fR=\fPstr +The IP address to be used for RDMA-CM based I/O. +.TP +.BI (librpma_*_server)direct_write_to_pmem \fR=\fPbool +Set to 1 only when Direct Write to PMem from the remote host is possible. Otherwise, set to 0. +.TP .BI (netsplice,net)interface \fR=\fPstr The IP address of the network interface used to send or receive UDP multicast. @@ -2041,6 +2092,11 @@ by default. Poll store instead of waiting for completion. Usually this provides better throughput at cost of higher(up to 100%) CPU utilization. .TP +.BI (rados)touch_objects \fR=\fPbool +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. +.TP .BI (http)http_host \fR=\fPstr Hostname to connect to. For S3, this could be the bucket name. Default is \fBlocalhost\fR @@ -2106,6 +2162,16 @@ client and the server or in certain loopback configurations. Specify stat system call type to measure lookup/getattr performance. Default is \fBstat\fR for \fBstat\fR\|(2). .TP +.BI (sg)hipri +If this option is set, fio will attempt to use polled IO completions. This +will have a similar effect as (io_uring)hipri. Only SCSI READ and WRITE +commands will have the SGV4_FLAG_HIPRI set (not UNMAP (trim) nor VERIFY). +Older versions of the Linux sg driver that do not support hipri will simply +ignore this flag and do normal IO. The Linux SCSI Low Level Driver (LLD) +that "owns" the device also needs to support hipri (also known as iopoll +and mq_poll). The MegaRAID driver is an example of a SCSI LLD. +Default: clear (0) which does normal (interrupted based) IO. +.TP .BI (sg)readfua \fR=\fPbool With readfua option set to 1, read operations include the force unit access (fua) flag. Default: 0. @@ -2185,6 +2251,20 @@ from RAM to GPU after a read. \fBverify\fR does not affect the use of cudaMemcpy. .RE .RE +.TP +.BI (dfs)pool +Specify the UUID of the DAOS pool to connect to. +.TP +.BI (dfs)cont +Specify the UUID of the DAOS DAOS container to open. +.TP +.BI (dfs)chunk_size +Specificy a different chunk size (in bytes) for the dfs file. +Use DAOS container's chunk size by default. +.TP +.BI (dfs)object_class +Specificy a different object class for the dfs file. +Use DAOS container's object class by default. .SS "I/O depth" .TP .BI iodepth \fR=\fPint @@ -2305,6 +2385,12 @@ queue depth setting redundant, since no more than 1 I/O will be queued before we have to complete it and do our \fBthinktime\fR. In other words, this setting effectively caps the queue depth if the latter is larger. .TP +.BI thinktime_blocks_type \fR=\fPstr +Only valid if \fBthinktime\fR is set - control how \fBthinktime_blocks\fR triggers. +The default is `complete', which triggers \fBthinktime\fR when fio completes +\fBthinktime_blocks\fR blocks. If this is set to `issue', then the trigger happens +at the issue side. +.TP .BI rate \fR=\fPint[,int][,int] Cap the bandwidth used by this job. The number is in bytes/sec, the normal suffix rules apply. Comma-separated values may be specified for reads, @@ -2373,10 +2459,11 @@ Used with \fBlatency_target\fR. If false (default), fio will find the highest queue depth that meets \fBlatency_target\fR and exit. If true, fio will continue running and try to meet \fBlatency_target\fR by adjusting queue depth. .TP -.BI max_latency \fR=\fPtime +.BI max_latency \fR=\fPtime[,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 \fBblocksize\fR. .TP .BI rate_cycle \fR=\fPint Average bandwidth for \fBrate\fR and \fBrate_min\fR over this number