X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.1;h=78f060590c6005187c4bea528f745a0b7b04e28a;hb=39b5f61e0c8f52c941e7eef4e97f417057150721;hp=0164f42b958a574f4340427b4e3b73a173e8e06d;hpb=37659335ac616d7c13bf8bfbb76366424b50ea67;p=fio.git diff --git a/fio.1 b/fio.1 index 0164f42b..78f06059 100644 --- a/fio.1 +++ b/fio.1 @@ -93,7 +93,7 @@ Start a backend server, with \fIargs\fP specifying what to listen to. See client Background a fio server, writing the pid to the given pid file. .TP .BI \-\-client \fR=\fPhost -Instead of running the jobs locally, send and run them on the given host. +Instead of running the jobs locally, send and run them on the given host or set of hosts. See client/server section. .TP .BI \-\-idle\-prof \fR=\fPoption Report cpu idleness on a system or percpu basis (\fIoption\fP=system,percpu) or run unit work calibration only (\fIoption\fP=calibrate). @@ -286,6 +286,10 @@ Mixed sequential reads and writes. .TP .B randrw Mixed random reads and writes. +.TP +.B trimwrite +Trim and write mixed workload. Blocks will be trimmed first, then the same +blocks will be written to. .RE .P For mixed I/O, the default split is 50/50. For certain types of io the result @@ -655,6 +659,13 @@ file out of those files based on the offset generated by fio backend. (see the example job file to create such files, use rw=write option). Please note, you might want to set necessary environment variables to work with hdfs/libhdfs properly. +.TP +.B mtd +Read, write and erase an MTD character device (e.g., /dev/mtd0). Discards are +treated as erases. Depending on the underlying device type, the I/O may have +to go in a certain pattern, e.g., on NAND, writing sequentially to erase blocks +and discarding before overwriting. The writetrim mode works well for this +constraint. .RE .P .RE @@ -683,6 +694,17 @@ cost of more retrieval system calls. Low watermark indicating when to start filling the queue again. Default: \fBiodepth\fR. .TP +.BI io_submit_mode \fR=\fPstr +This option controls how fio submits the IO to the IO engine. The default is +\fBinline\fR, which means that the fio job threads submit and reap IO directly. +If set to \fBoffload\fR, the job threads will offload IO submission to a +dedicated pool of IO threads. This requires some coordination and thus has a +bit of extra overhead, especially for lower queue depth IO where it can +increase latencies. The benefit is that fio can manage submission rates +independently of the device completion rates. This avoids skewed latency +reporting if IO gets back up on the device side (the coordinated omission +problem). +.TP .BI direct \fR=\fPbool If true, use non-buffered I/O (usually O_DIRECT). Default: false. .TP @@ -1292,6 +1314,11 @@ a compressed format. They can be decompressed with fio, using the \fB\-\-inflate-log\fR command line parameter. The files will be stored with a \fB\.fz\fR suffix. .TP +.BI block_error_percentiles \fR=\fPbool +If set, record errors in trim block-sized units from writes and trims and output +a histogram of how many trims it took to get to errors, and what kind of error +was encountered. +.TP .BI disable_lat \fR=\fPbool Disable measurements of total latency numbers. Useful only for cutting back the number of calls to \fBgettimeofday\fR\|(2), as that does impact performance at @@ -1450,9 +1477,9 @@ exceeded before retrying operations Enable the reporting of percentiles of completion latencies. .TP .BI percentile_list \fR=\fPfloat_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 +Overwrite the default list of percentiles for completion latencies and the +block error histogram. 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. 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. @@ -1567,6 +1594,9 @@ Specifies the name of the Ceph pool containing the RBD. .TP .BI (rbd)clientname \fR=\fPstr Specifies the username (without the 'client.' prefix) used to access the Ceph cluster. +.TP +.BI (mtd)skipbad \fR=\fPbool +Skip operations against known bad blocks. .SH OUTPUT While running, \fBfio\fR will display the status of the created jobs. For example: @@ -1875,8 +1905,35 @@ to load a local file as well. This is done by using \-\-remote-config: fio \-\-client=server \-\-remote-config /path/to/file.fio -Then the fio serer will open this local (to the server) job file instead +Then fio will open this local (to the server) job file instead of being passed one from the client. + +If you have many servers (example: 100 VMs/containers), you can input a pathname +of a file containing host IPs/names as the parameter value for the \-\-client option. +For example, here is an example "host.list" file containing 2 hostnames: + +host1.your.dns.domain +.br +host2.your.dns.domain + +The fio command would then be: + +fio \-\-client=host.list + +In this mode, you cannot input server-specific parameters or job files, and all +servers receive the same job file. + +In order to enable fio \-\-client runs utilizing a shared filesystem from multiple hosts, +fio \-\-client now prepends the IP address of the server to the filename. For example, +if fio is using directory /mnt/nfs/fio and is writing filename fileio.tmp, +with a \-\-client hostfile +containing two hostnames h1 and h2 with IP addresses 192.168.10.120 and 192.168.10.121, then +fio will create two files: + +/mnt/nfs/fio/192.168.10.120.fileio.tmp +.br +/mnt/nfs/fio/192.168.10.121.fileio.tmp + .SH AUTHORS .B fio