X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=HOWTO;h=e982b1a48ac642e3bdf7a231e9d10526910943c0;hp=2007dc04422a07c50008f332a68788aff57e98ad;hb=b8f7e41244a9c3ca8df5dd5c0111b4423d7e1534;hpb=a58963007a3416b61a72fa3df7e140eca7aa9a87 diff --git a/HOWTO b/HOWTO index 2007dc04..e982b1a4 100644 --- a/HOWTO +++ b/HOWTO @@ -104,6 +104,16 @@ Command line options Write output to file `filename`. +.. option:: --output-format=type + + Set the reporting format to `normal`, `terse`, `json`, or `json+`. Multiple + formats can be selected, separated by a comma. `terse` is a CSV based + format. `json+` is like `json`, except it adds a full dump of the latency + buckets. + +.. option:: --runtime + Limit run time to runtime seconds. + .. option:: --bandwidth-log Generate aggregate bandwidth logs. @@ -115,23 +125,16 @@ Command line options .. option:: --append-terse Print statistics in selected mode AND terse, semicolon-delimited format. - **deprecated**, use :option:`--output-format` instead to select multiple + **Deprecated**, use :option:`--output-format` instead to select multiple formats. -.. option:: --output-format=type - - Set the reporting format to `normal`, `terse`, `json`, or `json+`. Multiple - formats can be selected, separated by a comma. `terse` is a CSV based - format. `json+` is like `json`, except it adds a full dump of the latency - buckets. - .. option:: --terse-version=type Set terse version output format (default 3, or 2 or 4 or 5). .. option:: --version - Print version info and exit. + Print version information and exit. .. option:: --help @@ -144,7 +147,7 @@ Command line options .. option:: --crctest=[test] Test the speed of the built-in checksumming functions. If no argument is - given all of them are tested. Alternatively, a comma separated list can be passed, in + given, all of them are tested. Alternatively, a comma separated list can be passed, in which case the given ones are tested. .. option:: --cmdhelp=command @@ -159,7 +162,7 @@ Command line options .. option:: --showcmd=jobfile - Turn a job file into command line options. + Convert `jobfile` to a set of command-line options. .. option:: --readonly @@ -172,8 +175,8 @@ Command line options .. option:: --eta=when - When real-time ETA estimate should be printed. May be `always`, `never` or - `auto`. + Specifies when real-time ETA estimate should be printed. `when` may be + `always`, `never` or `auto`. .. option:: --eta-newline=time @@ -187,7 +190,7 @@ Command line options .. option:: --section=name - Only run specified section in job file. Multiple sections can be specified. + Only run specified section `name` in job file. Multiple sections can be specified. The ``--section`` option allows one to combine related jobs into one file. E.g. one job file could define light, moderate, and heavy sections. Tell fio to run only the "heavy" section by giving ``--section=heavy`` @@ -198,7 +201,7 @@ Command line options .. option:: --alloc-size=kb - Set the internal smalloc pool to this size in KiB. The + Set the internal smalloc pool size to `kb` in KiB. The ``--alloc-size`` switch allows one to use a larger pool size for smalloc. If running large jobs with randommap enabled, fio can run out of memory. Smalloc is an internal allocator for shared structures from a fixed size @@ -214,7 +217,7 @@ Command line options .. option:: --max-jobs=nr - Maximum number of threads/processes to support. + Set the maximum number of threads/processes to support. .. option:: --server=args @@ -236,7 +239,7 @@ Command line options .. option:: --idle-prof=option - Report CPU idleness. *option* is one of the following: + Report CPU idleness. `option` is one of the following: **calibrate** Run unit work calibration only and exit. @@ -521,7 +524,7 @@ Parameter types compatibility with old scripts. For example, 4k means 4096. For quantities of data, an optional unit of 'B' may be included - (e.g., 'kB' is the same as 'k'). + (e.g., 'kB' is the same as 'k'). The *integer suffix* is not case sensitive (e.g., m/mi mean mebi/mega, not milli). 'b' and 'B' both mean byte, not bit. @@ -853,10 +856,13 @@ Target file/device **pareto** Use a *Pareto* distribution to decide what file to access. - **gauss** + **normal** Use a *Gaussian* (normal) distribution to decide what file to access. + **gauss** + Alias for normal. + For *random*, *roundrobin*, and *sequential*, a postfix can be appended to tell fio how many I/Os to issue before switching to a new file. For example, specifying ``file_service_type=random:8`` would cause fio to issue @@ -1046,6 +1052,10 @@ I/O type **none** Do not pre-allocate space. + **native** + Use a platform's native pre-allocation call but fall back to + **none** behavior if it fails/is not implemented. + **posix** Pre-allocate via :manpage:`posix_fallocate(3)`. @@ -1060,8 +1070,9 @@ I/O type Backward-compatible alias for **posix**. May not be available on all supported platforms. **keep** is only available - on Linux. If using ZFS on Solaris this must be set to **none** because ZFS - doesn't support it. Default: **posix**. + on Linux. If using ZFS on Solaris this cannot be set to **posix** + because ZFS doesn't support pre-allocation. Default: **native** if any + pre-allocation methods are available, **none** if not. .. option:: fadvise_hint=str @@ -1090,11 +1101,13 @@ I/O type .. option:: offset=int - Start I/O at the provided offset in the file, given as either a fixed size or - a percentage. If a percentage is given, the next ``blockalign``-ed offset - will be used. Data before the given offset will not be touched. This + Start I/O at the provided offset in the file, given as either a fixed size in + bytes or a percentage. If a percentage is given, the next ``blockalign``-ed + offset will be used. Data before the given offset will not be touched. This effectively caps the file size at `real_size - offset`. Can be combined with :option:`size` to constrain the start and end range of the I/O workload. + A percentage can be specified by a number between 1 and 100 followed by '%', + for example, ``offset=20%`` to specify 20%. .. option:: offset_increment=int @@ -1202,7 +1215,7 @@ I/O type **pareto** Pareto distribution - **gauss** + **normal** Normal (Gaussian) distribution **zoned** @@ -1215,8 +1228,8 @@ I/O type values will yield in terms of hit rates. If you wanted to use **zipf** with a `theta` of 1.2, you would use ``random_distribution=zipf:1.2`` as the option. If a non-uniform model is used, fio will disable use of the random - map. For the **gauss** distribution, a normal deviation is supplied as a - value between 0 and 100. + map. For the **normal** distribution, a normal (Gaussian) deviation is + supplied as a value between 0 and 100. For a **zoned** distribution, fio supports specifying percentages of I/O access that should fall within what range of the file or device. For @@ -3323,7 +3336,7 @@ will be a disk utilization section. Below is a single line containing short names for each of the fields in the minimal output v3, separated by semicolons:: - terse_version_3;fio_version;jobname;groupid;error;read_kb;read_bandwidth;read_iops;read_runtime_ms;read_slat_min;read_slat_max;read_slat_mean;read_slat_dev;read_clat_max;read_clat_min;read_clat_mean;read_clat_dev;read_clat_pct01;read_clat_pct02;read_clat_pct03;read_clat_pct04;read_clat_pct05;read_clat_pct06;read_clat_pct07;read_clat_pct08;read_clat_pct09;read_clat_pct10;read_clat_pct11;read_clat_pct12;read_clat_pct13;read_clat_pct14;read_clat_pct15;read_clat_pct16;read_clat_pct17;read_clat_pct18;read_clat_pct19;read_clat_pct20;read_tlat_min;read_lat_max;read_lat_mean;read_lat_dev;read_bw_min;read_bw_max;read_bw_agg_pct;read_bw_mean;read_bw_dev;write_kb;write_bandwidth;write_iops;write_runtime_ms;write_slat_min;write_slat_max;write_slat_mean;write_slat_dev;write_clat_max;write_clat_min;write_clat_mean;write_clat_dev;write_clat_pct01;write_clat_pct02;write_clat_pct03;write_clat_pct04;write_clat_pct05;write_clat_pct06;write_clat_pct07;write_clat_pct08;write_clat_pct09;write_clat_pct10;write_clat_pct11;write_clat_pct12;write_clat_pct13;write_clat_pct14;write_clat_pct15;write_clat_pct16;write_clat_pct17;write_clat_pct18;write_clat_pct19;write_clat_pct20;write_tlat_min;write_lat_max;write_lat_mean;write_lat_dev;write_bw_min;write_bw_max;write_bw_agg_pct;write_bw_mean;write_bw_dev;cpu_user;cpu_sys;cpu_csw;cpu_mjf;pu_minf;iodepth_1;iodepth_2;iodepth_4;iodepth_8;iodepth_16;iodepth_32;iodepth_64;lat_2us;lat_4us;lat_10us;lat_20us;lat_50us;lat_100us;lat_250us;lat_500us;lat_750us;lat_1000us;lat_2ms;lat_4ms;lat_10ms;lat_20ms;lat_50ms;lat_100ms;lat_250ms;lat_500ms;lat_750ms;lat_1000ms;lat_2000ms;lat_over_2000ms;disk_name;disk_read_iops;disk_write_iops;disk_read_merges;disk_write_merges;disk_read_ticks;write_ticks;disk_queue_time;disk_util + terse_version_3;fio_version;jobname;groupid;error;read_kb;read_bandwidth;read_iops;read_runtime_ms;read_slat_min;read_slat_max;read_slat_mean;read_slat_dev;read_clat_min;read_clat_max;read_clat_mean;read_clat_dev;read_clat_pct01;read_clat_pct02;read_clat_pct03;read_clat_pct04;read_clat_pct05;read_clat_pct06;read_clat_pct07;read_clat_pct08;read_clat_pct09;read_clat_pct10;read_clat_pct11;read_clat_pct12;read_clat_pct13;read_clat_pct14;read_clat_pct15;read_clat_pct16;read_clat_pct17;read_clat_pct18;read_clat_pct19;read_clat_pct20;read_tlat_min;read_lat_max;read_lat_mean;read_lat_dev;read_bw_min;read_bw_max;read_bw_agg_pct;read_bw_mean;read_bw_dev;write_kb;write_bandwidth;write_iops;write_runtime_ms;write_slat_min;write_slat_max;write_slat_mean;write_slat_dev;write_clat_min;write_clat_max;write_clat_mean;write_clat_dev;write_clat_pct01;write_clat_pct02;write_clat_pct03;write_clat_pct04;write_clat_pct05;write_clat_pct06;write_clat_pct07;write_clat_pct08;write_clat_pct09;write_clat_pct10;write_clat_pct11;write_clat_pct12;write_clat_pct13;write_clat_pct14;write_clat_pct15;write_clat_pct16;write_clat_pct17;write_clat_pct18;write_clat_pct19;write_clat_pct20;write_tlat_min;write_lat_max;write_lat_mean;write_lat_dev;write_bw_min;write_bw_max;write_bw_agg_pct;write_bw_mean;write_bw_dev;cpu_user;cpu_sys;cpu_csw;cpu_mjf;cpu_minf;iodepth_1;iodepth_2;iodepth_4;iodepth_8;iodepth_16;iodepth_32;iodepth_64;lat_2us;lat_4us;lat_10us;lat_20us;lat_50us;lat_100us;lat_250us;lat_500us;lat_750us;lat_1000us;lat_2ms;lat_4ms;lat_10ms;lat_20ms;lat_50ms;lat_100ms;lat_250ms;lat_500ms;lat_750ms;lat_1000ms;lat_2000ms;lat_over_2000ms;disk_name;disk_read_iops;disk_write_iops;disk_read_merges;disk_write_merges;disk_read_ticks;write_ticks;disk_queue_time;disk_util Trace file format @@ -3532,7 +3545,7 @@ 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 +Client/Server ------------- Normally fio is invoked as a stand-alone application on the machine where the