X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=fio.1;h=df140cfe4ee0a06deaf5c81cc3349be7b00e9d6c;hb=d79b085f57c9ffe4f3d183051251e20a1c115348;hp=f98802aadb9d209a0e273e352f4dfcc79f564726;hpb=2cafffbea5d2ed2f20d73efa0d82baa9046e0b12;p=fio.git diff --git a/fio.1 b/fio.1 index f98802aa..df140cfe 100644 --- a/fio.1 +++ b/fio.1 @@ -874,15 +874,51 @@ Zipf distribution .B pareto Pareto distribution .TP +.B gauss +Normal (gaussian) distribution +.TP +.B zoned +Zoned random distribution +.TP .RE -.P -When using a zipf or pareto distribution, an input value is also needed to -define the access pattern. For zipf, this is the zipf theta. For pareto, -it's the pareto power. Fio includes a test program, genzipf, that can be -used visualize what the given input values will yield in terms of hit rates. -If you wanted to use zipf with a theta of 1.2, you would use +When using a \fBzipf\fR or \fBpareto\fR distribution, an input value is also +needed to define the access pattern. For \fBzipf\fR, this is the zipf theta. +For \fBpareto\fR, it's the pareto power. Fio includes a test program, genzipf, +that can be used visualize what the given input values will yield in terms of +hit rates. If you wanted to use \fBzipf\fR with a theta of 1.2, you would use random_distribution=zipf:1.2 as the option. If a non-uniform model is used, -fio will disable use of the random map. +fio will disable use of the random map. For the \fBgauss\fR distribution, a +normal deviation is supplied as a value between 0 and 100. +.P +.RS +For a \fBzoned\fR distribution, fio supports specifying percentages of IO +access that should fall within what range of the file or device. For example, +given a criteria of: +.P +.RS +60% of accesses should be to the first 10% +.RE +.RS +30% of accesses should be to the next 20% +.RE +.RS +8% of accesses should be to to the next 30% +.RE +.RS +2% of accesses should be to the next 40% +.RE +.P +we can define that through zoning of the random accesses. For the above +example, the user would do: +.P +.RS +.B random_distribution=zoned:60/10:30/20:8/30:2/40 +.RE +.P +similarly to how \fBbssplit\fR works for setting ranges and percentages of block +sizes. Like \fBbssplit\fR, it's possible to specify separate zones for reads, +writes, and trims. If just one set is given, it'll apply to all of them. +.RE .TP .BI percentage_random \fR=\fPint For a random workload, set how big a percentage should be random. This defaults @@ -1405,7 +1441,8 @@ fio_generate_plots script uses gnuplot to turn these text files into nice graphs. See \fBwrite_lat_log\fR for behaviour of given filename. For this option, the postfix is _bw.x.log, where x is the index of the job (1..N, where N is the number of jobs). If \fBper_job_logs\fR is false, then the -filename will not include the job index. +filename will not include the job index. See the \fBLOG FILE FORMATS\fR +section. .TP .BI write_lat_log \fR=\fPstr Same as \fBwrite_bw_log\fR, but writes I/O completion latencies. If no @@ -1413,14 +1450,15 @@ filename is given with this option, the default filename of "jobname_type.x.log" is used, where x is the index of the job (1..N, where N is the number of jobs). Even if the filename is given, fio will still append the type of log. If \fBper_job_logs\fR is false, then the filename will -not include the job index. +not include the job index. See the \fBLOG FILE FORMATS\fR section. .TP .BI write_iops_log \fR=\fPstr Same as \fBwrite_bw_log\fR, but writes IOPS. If no filename is given with this option, the default filename of "jobname_type.x.log" is used, where x is the index of the job (1..N, where N is the number of jobs). Even if the filename is given, fio will still append the type of log. If \fBper_job_logs\fR is false, -then the filename will not include the job index. +then the filename will not include the job index. See the \fBLOG FILE FORMATS\fR +section. .TP .BI log_avg_msec \fR=\fPint By default, fio will log an entry in the iops, latency, or bw log for every @@ -2183,6 +2221,58 @@ the files over and load them from there. .RE +.SH LOG FILE FORMATS + +Fio supports a variety of log file formats, for logging latencies, bandwidth, +and IOPS. The logs share a common format, which looks like this: + +.B time (msec), value, data direction, offset + +Time for the log entry is always in milliseconds. The value logged depends +on the type of log, it will be one of the following: + +.P +.PD 0 +.TP +.B Latency log +Value is in latency in usecs +.TP +.B Bandwidth log +Value is in KB/sec +.TP +.B IOPS log +Value is in IOPS +.PD +.P + +Data direction is one of the following: + +.P +.PD 0 +.TP +.B 0 +IO is a READ +.TP +.B 1 +IO is a WRITE +.TP +.B 2 +IO is a TRIM +.PD +.P + +The \fIoffset\fR is the offset, in bytes, from the start of the file, for that +particular IO. The logging of the offset can be toggled with \fBlog_offset\fR. + +If windowed logging is enabled though \fBlog_avg_msec\fR, then fio doesn't log +individual IOs. Instead of logs the average values over the specified +period of time. Since \fIdata direction\fR and \fIoffset\fR are per-IO values, +they aren't applicable if windowed logging is enabled. If windowed logging +is enabled and \fBlog_max_value\fR is set, then fio logs maximum values in +that window instead of averages. + +.RE + .SH CLIENT / SERVER Normally you would run fio as a stand-alone application on the machine where the IO workload should be generated. However, it is also possible to