Add create_only option
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index 30e40593a28e59bd87b955c58acf4751b6d3def3..025443be406669ece150b28858c67ed9cb2f56d9 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -310,7 +310,7 @@ rw=str              Type of io pattern. Accepted values are:
                        write           Sequential writes
                        randwrite       Random writes
                        randread        Random reads
-                       rw              Sequential mixed reads and writes
+                       rw,readwrite    Sequential mixed reads and writes
                        randrw          Random mixed reads and writes
 
                For the mixed io types, the default is to split them 50/50.
@@ -320,7 +320,7 @@ rw=str              Type of io pattern. Accepted values are:
                one by appending a ':<nr>' to the end of the string given.
                For a random read, it would look like 'rw=randread:8' for
                passing in an offset modifier with a value of 8. If the
-               postfix is used with a sequential IO pattern, then the value
+               suffix is used with a sequential IO pattern, then the value
                specified will be added to the generated offset for each IO.
                For instance, using rw=write:4k will skip 4k for every
                write. It turns sequential IO into sequential IO with holes.
@@ -488,6 +488,22 @@ scramble_buffers=bool      If refill_buffers is too costly and the target is
                block compression attempts, but it will stop naive dedupe of
                blocks. Default: true.
 
+buffer_compress_percentage=int If this is set, then fio will attempt to
+               provide IO buffer content (on WRITEs) that compress to
+               the specified level. Fio does this by providing a mix of
+               random data and zeroes. Note that this is per block size
+               unit, for file/disk wide compression level that matches
+               this setting, you'll also want to set refill_buffers.
+
+buffer_compress_chunk=int      See buffer_compress_percentage. This
+               setting allows fio to manage how big the ranges of random
+               data and zeroed data is. Without this set, fio will
+               provide buffer_compress_percentage of blocksize random
+               data, followed by the remaining zeroed. With this set
+               to some chunk size smaller than the block size, fio can
+               alternate random and zeroed data throughout the IO
+               buffer.
+
 nrfiles=int    Number of files to use for this job. Defaults to 1.
 
 openfiles=int  Number of files to keep open at the same time. Defaults to
@@ -877,6 +893,11 @@ create_fsync=bool  fsync the data file after creation. This is the
 create_on_open=bool    Don't pre-setup the files for IO, just create open()
                        when it's time to do IO to that file.
 
+create_only=bool       If true, fio will only run the setup phase of the job.
+                       If files need to be laid out or updated on disk, only
+                       that will be done. The actual job contents are not
+                       executed.
+
 pre_read=bool  If this is given, files will be pre-read into memory before
                starting the given IO operation. This will also clear
                the 'invalidate' flag, since it is pointless to pre-read
@@ -1091,8 +1112,8 @@ write_bw_log=str 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 write_log_log for behaviour of given
-               filename. For this option, the postfix is _bw.log.
+               graphs. See write_lat_log for behaviour of given
+               filename. For this option, the suffix is _bw.log.
 
 write_lat_log=str Same as write_bw_log, except that this option stores io
                submission, completion, and total latencies instead. If no
@@ -1323,13 +1344,17 @@ I               Thread initialized, waiting.
        F       Running, currently waiting for fsync()
        V       Running, doing verification of written data.
 E              Thread exited, not reaped by main thread yet.
-_              Thread reaped.
+_              Thread reaped, or
+X              Thread reaped, exited with an error.
+K              Thread reaped, exited due to signal.
 
 The other values are fairly self explanatory - number of threads
 currently running and doing io, rate of io since last check (read speed
 listed first, then write speed), and the estimated completion percentage
 and time for the running group. It's impossible to estimate runtime of
-the following groups (if any).
+the following groups (if any). Note that the string is displayed in order,
+so it's possible to tell which of the jobs are currently doing what. The
+first character is the first job defined in the job file, and so forth.
 
 When fio is done (or interrupted by ctrl-c), it will show the data for
 each thread, group of threads, and disks in that order. For each data
@@ -1362,7 +1387,8 @@ runt=             The runtime of that thread
                latency, since queue/complete is one operation there. This
                value can be in milliseconds or microseconds, fio will choose
                the most appropriate base and print that. In the example
-               above, milliseconds is the best scale.
+               above, milliseconds is the best scale. Note: in --minimal mode
+               latencies are always expressed in microseconds.
        clat=   Completion latency. Same names as slat, this denotes the
                time from submission to completion of the io pieces. For
                sync io, clat will usually be equal (or very close) to 0,
@@ -1427,6 +1453,9 @@ io_queue= Total time spent in the disk queue.
 util=          The disk utilization. A value of 100% means we kept the disk
                busy constantly, 50% would be a disk idling half of the time.
 
+It is also possible to get fio to dump the current output while it is
+running, without terminating the job. To do that, send fio the USR1 signal.
+
 
 7.0 Terse output
 ----------------
@@ -1450,18 +1479,18 @@ Split up, the format is as follows:
        terse version, fio version, jobname, groupid, error
        READ status:
                Total IO (KB), bandwidth (KB/sec), IOPS, runtime (msec)
-               Submission latency: min, max, mean, deviation
-               Completion latency: min, max, mean, deviation
+               Submission latency: min, max, mean, deviation (usec)
+               Completion latency: min, max, mean, deviation (usec)
                Completion latency percentiles: 20 fields (see below)
-               Total latency: min, max, mean, deviation
-               Bw: min, max, aggregate percentage of total, mean, deviation
+               Total latency: min, max, mean, deviation (usec)
+               Bw (KB/s): min, max, aggregate percentage of total, mean, deviation
        WRITE status:
                Total IO (KB), bandwidth (KB/sec), IOPS, runtime (msec)
-               Submission latency: min, max, mean, deviation
-               Completion latency: min, max, mean, deviation
+               Submission latency: min, max, mean, deviation (usec)
+               Completion latency: min, max, mean, deviation (usec)
                Completion latency percentiles: 20 fields (see below)
-               Total latency: min, max, mean, deviation
-               Bw: min, max, aggregate percentage of total, mean, deviation
+               Total latency: min, max, mean, deviation (usec)
+               Bw (KB/s): min, max, aggregate percentage of total, mean, deviation
        CPU usage: user, system, context switches, major faults, minor faults
        IO depths: <=1, 2, 4, 8, 16, 32, >=64
        IO latencies microseconds: <=2, 4, 10, 20, 50, 100, 250, 500, 750, 1000