diff options
authorJens Axboe <>2009-04-07 12:52:08 +0200
committerJens Axboe <>2009-04-07 12:52:08 +0200
commitcea0b7c046290bbcc57ef7dcee18f90d08e9d72a (patch)
parentde9937d1df38ef8ab837ef0fbf2831820d0775f4 (diff)
parent901bb99400fde83a6f8ef816757b525796776d8e (diff)
Merge branch 'master' of ssh://router/data/git/fio
1 files changed, 51 insertions, 3 deletions
diff --git a/fio.1 b/fio.1
index dd8eda97..38341b31 100644
--- a/fio.1
+++ b/fio.1
@@ -199,9 +199,16 @@ At what boundary to align random IO offsets. Defaults to the same as
for using direct IO, though it usually depends on the hardware block size.
This option is mutually exclusive with using a random map for files, so it
will turn off that option.
.B zero_buffers
Initialise buffers with all zeros. Default: fill buffers with random data.
+.B refill_buffers
+If this option is given, fio will refill the IO buffers on every submit. The
+default is to only fill it at init time and reuse that data. Only makes sense
+if zero_buffers isn't specified, naturally. If data verification is enabled,
+refill_buffers is also automatically enabled.
.BI nrfiles \fR=\fPint
Number of files to use for this job. Default: 1.
@@ -401,6 +408,13 @@ If given, run for the specified \fBruntime\fR duration even if the files are
completely read or written. The same workload will be repeated as many times
as \fBruntime\fR allows.
+.BI ramp_time \fR=\fPint
+If set, fio will run the specified workload for this amount of time before
+logging any performance numbers. Useful for letting performance settle before
+logging results, thus minimizing the runtime required for stable results. Note
+that the ramp_time is considered lead in time for a job, thus it will increase
+the total runtime if a special timeout or runtime is specified.
.BI invalidate \fR=\fPbool
Invalidate buffer-cache for the file prior to starting I/O. Default: true.
@@ -540,11 +554,29 @@ Write the issued I/O patterns to the specified file.
Replay the I/O patterns contained in the specified file generated by
\fBwrite_iolog\fR, or may be a \fBblktrace\fR binary file.
-.B write_bw_log
-If given, write bandwidth logs of the jobs in this file.
+.B 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
+fio_generate_plots script uses gnuplot to turn these text files into nice
+graphs. See \fBwrite_log_log\fR for behaviour of given filename. For this
+option, the postfix is _bw.log.
.B write_lat_log
-Same as \fBwrite_bw_log\fR, but writes I/O completion latencies.
+Same as \fBwrite_bw_log\fR, but writes I/O completion latencies. If no
+filename is given with this option, the default filename of "jobname_type.log"
+is used. Even if the filename is given, fio will still append the type of log.
+.B disable_clat \fR=\fPbool
+Disable measurements of completion latency numbers. Useful only for cutting
+back the number of calls to gettimeofday, as that does impact performance at
+really high IOPS rates. Note that to really get rid of a large amount of these
+calls, this option must be used with disable_slat and disable_bw as well.
+.B disable_slat \fR=\fPbool
+Disable measurements of submission latency numbers. See \fBdisable_clat\fR.
+.B disable_bw_measurement \fR=\fPbool
+Disable measurements of throughput/bandwidth numbers. See \fBdisable_clat\fR.
.BI lockmem \fR=\fPint
Pin the specified amount of memory with \fBmlock\fR\|(2). Can be used to
@@ -569,6 +601,22 @@ given time in milliseconds.
.BI disk_util \fR=\fPbool
Generate disk utilization statistics if the platform supports it. Default: true.
+.BI gtod_reduce \fR=\fPbool
+Enable all of the gettimeofday() reducing options (disable_clat, disable_slat,
+disable_bw) plus reduce precision of the timeout somewhat to really shrink the
+gettimeofday() call count. With this option enabled, we only do about 0.4% of
+the gtod() calls we would have done if all time keeping was enabled.
+.BI gtod_cpu \fR=\fPint
+Sometimes it's cheaper to dedicate a single thread of execution to just getting
+the current time. Fio (and databases, for instance) are very intensive on
+gettimeofday() calls. With this option, you can set one CPU aside for doing
+nothing but logging current time to a shared memory location. Then the other
+threads/processes that run IO workloads need only copy that segment, instead of
+entering the kernel with a gettimeofday() call. The CPU set aside for doing
+these time calls will be excluded from other uses. Fio will manually clear it
+from the CPU mask of other jobs.
While running, \fBfio\fR will display the status of the created jobs. For