HOWTO: Reword Log File Formats and add reference
[fio.git] / HOWTO
diff --git a/HOWTO b/HOWTO
index 47563aa92ecc65563e61d703d14d5dfc620bb29f..09ac5cee4c1ad7222cb8ea796d56bfa74b026fbc 100644 (file)
--- a/HOWTO
+++ b/HOWTO
@@ -2039,6 +2039,11 @@ I/O rate
        suffix rules apply.  Comma-separated values may be specified for reads,
        writes, and trims as described in :option:`blocksize`.
 
+       For example, using `rate=1m,500k` would limit reads to 1MiB/sec and writes to
+       500KiB/sec.  Capping only reads or writes can be done with `rate=,500k` or
+       `rate=500k,` where the former will only limit writes (to 500KiB/sec) and the
+       latter will only limit reads.
+
 .. option:: rate_min=int[,int][,int]
 
        Tell fio to do whatever it can to maintain at least this bandwidth. Failing
@@ -2696,6 +2701,7 @@ Measurements and reporting
        very large size. Setting this option makes fio average the each log entry
        over the specified period of time, reducing the resolution of the log.  See
        :option:`log_max_value` as well. Defaults to 0, logging all entries.
+       Also see `Log File Formats`_.
 
 .. option:: log_hist_msec=int
 
@@ -3099,16 +3105,20 @@ denote:
                context and fault counters are summed.
 
 **IO depths**
-               The distribution of I/O depths over the job life time. The numbers are
-               divided into powers of 2, so for example the 16= entries includes depths
-               up to that value but higher than the previous entry. In other words, it
-               covers the range from 16 to 31.
+               The distribution of I/O depths over the job lifetime.  The numbers are
+               divided into powers of 2 and each entry covers depths from that value
+               up to those that are lower than the next entry -- e.g., 16= covers
+               depths from 16 to 31.  Note that the range covered by a depth
+               distribution entry can be different to the range covered by the
+               equivalent submit/complete distribution entry.
 
 **IO submit**
                How many pieces of I/O were submitting in a single submit call. Each
                entry denotes that amount and below, until the previous entry -- e.g.,
-               8=100% mean that we submitted anywhere in between 5-8 I/Os per submit
-               call.
+               16=100% means that we submitted anywhere between 9 to 16 I/Os per submit
+               call.  Note that the range covered by a submit distribution entry can
+               be different to the range covered by the equivalent depth distribution
+               entry.
 
 **IO complete**
                Like the above submit number, but for completions instead.
@@ -3186,7 +3196,8 @@ is one long line of values, such as::
 
 The job description (if provided) follows on a second line.
 
-To enable terse output, use the :option:`--minimal` command line option. The
+To enable terse output, use the :option:`--minimal` or
+:option:`--output-format`\=terse command line options. The
 first value is the version of the terse output format. If the output has to be
 changed for some reason, this number will be incremented by 1 to signify that
 change.
@@ -3470,27 +3481,26 @@ The *offset* is the offset, in bytes, from the start of the file, for that
 particular I/O. The logging of the offset can be toggled with
 :option:`log_offset`.
 
-If windowed logging is enabled through :option:`log_avg_msec` then fio doesn't
-log individual I/Os. Instead of logs the average values over the specified period
-of time. Since 'data direction' and 'offset' are per-I/O values, they aren't
-applicable if windowed logging is enabled. If windowed logging is enabled and
-:option:`log_max_value` is set, then fio logs maximum values in that window
-instead of averages.
-
+Fio defaults to logging every individual I/O.  When IOPS are logged for individual
+I/Os the value entry will always be 1.  If windowed logging is enabled through
+:option:`log_avg_msec`, fio logs the average values over the specified period of time.
+If windowed logging is enabled and :option:`log_max_value` is set, then fio logs
+maximum values in that window instead of averages.  Since 'data direction' and
+'offset' are per-I/O values, they aren't applicable if windowed logging is enabled.
 
 Client/server
 -------------
 
 Normally fio is invoked as a stand-alone application on the machine where the
-I/O workload should be generated. However, the frontend and backend of fio can
-be run separately. Ie the fio server can generate an I/O workload on the "Device
-Under Test" while being controlled from another machine.
+I/O workload should be generated. However, the backend and frontend of fio can
+be run separately i.e., the fio server can generate an I/O workload on the "Device
+Under Test" while being controlled by a client on another machine.
 
 Start the server on the machine which has access to the storage DUT::
 
        fio --server=args
 
-where args defines what fio listens to. The arguments are of the form
+where `args` defines what fio listens to. The arguments are of the form
 ``type,hostname`` or ``IP,port``. *type* is either ``ip`` (or ip4) for TCP/IP
 v4, ``ip6`` for TCP/IP v6, or ``sock`` for a local unix domain socket.
 *hostname* is either a hostname or IP address, and *port* is the port to listen
@@ -3518,7 +3528,7 @@ to (only valid for TCP/IP, not a local socket). Some examples:
 
 6) ``fio --server=sock:/tmp/fio.sock``
 
-   Start a fio server, listening on the local socket /tmp/fio.sock.
+   Start a fio server, listening on the local socket :file:`/tmp/fio.sock`.
 
 Once a server is running, a "client" can connect to the fio server with::