X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.1;h=e54e419b2f5852733c7312a44defcf0345be7591;hp=c3193a21e704dd1fb363f2a54a407b8de7a1b820;hb=0c63576e14bc606f81441f20e58a5b6338a5e2d6;hpb=d1af28949be138e55dd061132318dfc240758b4c diff --git a/fio.1 b/fio.1 index c3193a21..e54e419b 100644 --- a/fio.1 +++ b/fio.1 @@ -1,4 +1,4 @@ -.TH fio 1 "October 2013" "User Manual" +.TH fio 1 "December 2014" "User Manual" .SH NAME fio \- flexible I/O tester .SH SYNOPSIS @@ -20,6 +20,9 @@ list all available tracing options. .BI \-\-output \fR=\fPfilename Write output to \fIfilename\fR. .TP +.BI \-\-output-format \fR=\fPformat +Set the reporting format to \fInormal\fR, \fIterse\fR, or \fIjson\fR. +.TP .BI \-\-runtime \fR=\fPruntime Limit run time to \fIruntime\fR seconds. .TP @@ -283,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 @@ -375,23 +382,30 @@ because ZFS doesn't support it. Default: 'posix'. Use \fBposix_fadvise\fR\|(2) to advise the kernel what I/O patterns are likely to be issued. Default: true. .TP +.BI fadvise_stream \fR=\fPint +Use \fBposix_fadvise\fR\|(2) to advise the kernel what stream ID the +writes issued belong to. Only supported on Linux. Note, this option +may change going forward. +.TP .BI size \fR=\fPint Total size of I/O for this job. \fBfio\fR will run until this many bytes have -been transferred, unless limited by other options (\fBruntime\fR, for instance). -Unless \fBnrfiles\fR and \fBfilesize\fR options are given, this amount will be -divided between the available files for the job. If not set, 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. -.TP -.BI io_limit \fR=\fPint +been transferred, unless limited by other options (\fBruntime\fR, for instance, +or increased/descreased by \fBio_size\fR). Unless \fBnrfiles\fR and +\fBfilesize\fR options are given, this amount will be divided between the +available files for the job. If not set, 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. +.TP +.BI io_size \fR=\fPint "\fR,\fB io_limit \fR=\fPint Normally fio operates within the region set by \fBsize\fR, which means that the \fBsize\fR option sets both the region and size of IO to be performed. Sometimes that is not what you want. With this option, it is possible to define just the amount of IO that fio should do. For instance, if \fBsize\fR is set to 20G and \fBio_limit\fR is set to 5G, fio will perform IO within -the first 20G but exit when 5G have been done. +the first 20G but exit when 5G have been done. The opposite is also +possible - if \fBsize\fR is set to 20G, and \fBio_size\fR is set to 40G, then +fio will do 40G of IO within the 0..20G region. .TP .BI fill_device \fR=\fPbool "\fR,\fB fill_fs" \fR=\fPbool Sets size to something really large and waits for ENOSPC (no space left on @@ -457,8 +471,6 @@ blocksize setting. .TP .B zero_buffers Initialize buffers with all zeros. Default: fill buffers with random data. -The resulting IO buffers will not be completely zeroed, unless -\fPscramble_buffers\fR is also turned off. .TP .B refill_buffers If this option is given, fio will refill the IO buffers on every submit. The @@ -647,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 @@ -675,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 @@ -1235,6 +1265,12 @@ is to replay the IOPS onto the major/minor device that each IOP was recorded from. Setting \fBreplay_redirect\fR causes all IOPS to be replayed onto the single specified device regardless of the device it was recorded from. .TP +.BI replay_align \fR=\fPint +Force alignment of IO offsets and lengths in a trace to this power of 2 value. +.TP +.BI replay_scale \fR=\fPint +Scale sector offsets down by this factor when replaying traces. +.TP .BI write_bw_log \fR=\fPstr If given, write a bandwidth log of the jobs in this job file. Can be used to store data of the bandwidth of the jobs in their lifetime. The included @@ -1284,6 +1320,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 @@ -1442,9 +1483,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. @@ -1559,6 +1600,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: @@ -1873,7 +1917,7 @@ of being passed one from the client. .B fio was written by Jens Axboe , -now Jens Axboe . +now Jens Axboe . .br This man page was written by Aaron Carroll based on documentation by Jens Axboe.