X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=HOWTO;h=09ac5cee4c1ad7222cb8ea796d56bfa74b026fbc;hp=4be23f05755bf75b972622f5f6cfcf2a9d62c9da;hb=6fc820956c033fcb097d88760bb6124938779668;hpb=a7f77fa6ff0cbd2582925cb69a0376dc1135f704 diff --git a/HOWTO b/HOWTO index 4be23f05..09ac5cee 100644 --- 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. @@ -3471,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 @@ -3519,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::