X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=fio.1;h=38341b3191448f67f81adc23c589542b8fd75aee;hp=04dcb73c7feed4c215a759acba536d410b1b56a7;hb=901bb99400fde83a6f8ef816757b525796776d8e;hpb=43602667a0b5fabccb4ea26c2c4b277843e36202 diff --git a/fio.1 b/fio.1 index 04dcb73c..38341b31 100644 --- a/fio.1 +++ b/fio.1 @@ -203,6 +203,12 @@ will turn off that option. .B zero_buffers Initialise buffers with all zeros. Default: fill buffers with random data. .TP +.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. +.TP .BI nrfiles \fR=\fPint Number of files to use for this job. Default: 1. .TP @@ -402,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. .TP +.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. +.TP .BI invalidate \fR=\fPbool Invalidate buffer-cache for the file prior to starting I/O. Default: true. .TP @@ -541,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. .TP -.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. .TP .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. +.TP +.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. +.TP +.B disable_slat \fR=\fPbool +Disable measurements of submission latency numbers. See \fBdisable_clat\fR. +.TP +.B disable_bw_measurement \fR=\fPbool +Disable measurements of throughput/bandwidth numbers. See \fBdisable_clat\fR. .TP .BI lockmem \fR=\fPint Pin the specified amount of memory with \fBmlock\fR\|(2). Can be used to @@ -570,6 +601,22 @@ given time in milliseconds. .TP .BI disk_util \fR=\fPbool Generate disk utilization statistics if the platform supports it. Default: true. +.TP +.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. +.TP +.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. .SH OUTPUT While running, \fBfio\fR will display the status of the created jobs. For example: