Add options to have fio latency profile a device
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index 005dac251dd202917fdb446ffec22d3126757f8c..044b57221f3d18c431e4840bfcbdb21bbab31b2e 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -695,6 +695,11 @@ direct=bool        If value is true, use non-buffered io. This is usually
                O_DIRECT. Note that ZFS on Solaris doesn't support direct io.
                On Windows the synchronous ioengines don't support direct io.
 
+atomic=bool    If value is true, attempt to use atomic direct IO. Atomic
+               writes are guaranteed to be stable once acknowledged by
+               the operating system. Only Linux supports O_ATOMIC right
+               now.
+
 buffered=bool  If value is true, use buffered io. This is the opposite
                of the 'direct' option. Defaults to true.
 
@@ -870,11 +875,25 @@ rate_iops=int     Cap the bandwidth to this number of IOPS. Basically the same
                as rate, just specified independently of bandwidth. If the
                job is given a block size range instead of a fixed value,
                the smallest block size is used as the metric. The same format
-               as rate is used for read vs write seperation.
+               as rate is used for read vs write separation.
 
 rate_iops_min=int If fio doesn't meet this rate of IO, it will cause
                the job to exit. The same format as rate is used for read vs
-               write seperation.
+               write separation.
+
+latency_target=int     If set, fio will attempt to find the max performance
+               point that the given workload will run at while maintaining a
+               latency below this target. The values is given in microseconds.
+               See latency_window and latency_percentile
+
+latency_window=int     Used with latency_target to specify the sample window
+               that the job is run at varying queue depths to test the
+               performance. The value is given in microseconds.
+
+latency_percentile=float       The percentage of IOs that must fall within the
+               criteria specified by latency_target and latency_window. If not
+               set, this defaults to 100.0, meaning that all IOs must be equal
+               or below to the value set by latency_target.
 
 max_latency=int        If set, fio will exit the job if it exceeds this maximum
                latency. It will exit with an ETIME error.
@@ -1151,9 +1170,6 @@ verify_backlog=int        Fio will normally verify the written contents of a
                holding this meta data. If this option is enabled, fio
                will write only N blocks before verifying these blocks.
 
-               will verify the previously written blocks before continuing
-               to write new ones.
-
 verify_backlog_batch=int       Control how many blocks fio will verify
                if verify_backlog is set. If not set, will default to
                the value of verify_backlog (meaning the entire queue
@@ -1163,7 +1179,7 @@ verify_backlog_batch=int  Control how many blocks fio will verify
                blocks will be verified more than once.
 
 stonewall
-wait_for_previous Wait for preceeding jobs in the job file to exit, before
+wait_for_previous Wait for preceding jobs in the job file to exit, before
                starting this one. Can be used to insert serialization
                points in the job file. A stone wall also implies starting
                a new reporting group.
@@ -1219,7 +1235,7 @@ replay_no_stall=int When replaying I/O with read_iolog the default behavior
 replay_redirect=str While replaying I/O patterns using read_iolog the
                default behavior is to replay the IOPS onto the major/minor
                device that each IOP was recorded from.  This is sometimes
-               undesireable because on a different machine those major/minor
+               undesirable because on a different machine those major/minor
                numbers can map to a different device.  Changing hardware on
                the same system can also result in a different major/minor
                mapping.  Replay_redirect causes all IOPS to be replayed onto
@@ -1252,9 +1268,6 @@ write_lat_log=str Same as write_bw_log, except that this option stores io
                and foo_lat.log. This helps fio_generate_plot fine the logs
                automatically.
 
-write_bw_log=str If given, write an IOPS log of the jobs in this job
-               file. See write_bw_log.
-
 write_iops_log=str Same as write_bw_log, but writes IOPS. If no filename is
                given with this option, the default filename of
                "jobname_type.log" is used. Even if the filename is given,
@@ -1690,9 +1703,9 @@ Split up, the format is as follows:
                          Read merges, write merges,
                          Read ticks, write ticks,
                          Time spent in queue, disk utilization percentage
-       Additional Info (dependant on continue_on_error, default off): total # errors, first error code
+       Additional Info (dependent on continue_on_error, default off): total # errors, first error code
 
-       Additional Info (dependant on description being set): Text description
+       Additional Info (dependent on description being set): Text description
 
 Completion latency percentiles can be a grouping of up to 20 sets, so
 for the terse output fio writes all of them. Each field will look like this: