International System of Units (SI):
.RS
.P
-ki means kilo (K) or 1000
+Ki means kilo (K) or 1000
.RE
.RS
-mi means mega (M) or 1000**2
+Mi means mega (M) or 1000**2
.RE
.RS
-gi means giga (G) or 1000**3
+Gi means giga (G) or 1000**3
.RE
.RS
-ti means tera (T) or 1000**4
+Ti means tera (T) or 1000**4
.RE
.RS
-pi means peta (P) or 1000**5
+Pi means peta (P) or 1000**5
.RE
.P
To specify power-of-2 binary values defined in IEC 80000-13:
.RS
.P
-k means kibi (Ki) or 1024
+K means kibi (Ki) or 1024
.RE
.RS
-m means mebi (Mi) or 1024**2
+M means mebi (Mi) or 1024**2
.RE
.RS
-g means gibi (Gi) or 1024**3
+G means gibi (Gi) or 1024**3
.RE
.RS
-t means tebi (Ti) or 1024**4
+T means tebi (Ti) or 1024**4
.RE
.RS
-p means pebi (Pi) or 1024**5
+P means pebi (Pi) or 1024**5
.RE
.P
With `kb_base=1024' (the default), the unit prefixes are opposite
.B exitall
Terminate all jobs when one finishes. Default: wait for each job to finish.
.TP
-.B exitall_on_error \fR=\fPbool
+.B exitall_on_error
Terminate all jobs if one job finishes in error. Default: wait for each job
to finish.
.TP
Specifies the number of iterations (runs of the same workload) of this job.
Default: 1.
.TP
-.BI verify_only \fR=\fPbool
+.BI verify_only
Do not perform the specified workload, only verify data still matches previous
invocation of this workload. This option allows one to check data multiple
times at a later date without overwriting it. This option makes sense only for
Replay the I/O patterns contained in the specified file generated by
\fBwrite_iolog\fR, or may be a \fBblktrace\fR binary file.
.TP
-.BI replay_no_stall \fR=\fPint
+.BI replay_no_stall \fR=\fPbool
While replaying I/O patterns using \fBread_iolog\fR the default behavior
attempts to respect timing information between I/Os. Enabling
\fBreplay_no_stall\fR causes I/Os to be replayed as fast as possible while
connections rather than initiating an outgoing connection. The
hostname must be omitted if this option is used.
.TP
-.BI (net,netsplice)pingpong \fR=\fPbool
+.BI (net,netsplice)pingpong
Normally a network writer will just continue writing data, and a network reader
will just consume packets. If pingpong=1 is set, a writer will send its normal
payload to the reader, then wait for the reader to send the same payload back.
cluster. If the clustername is specified, the clientname shall be the full
type.id string. If no type. prefix is given, fio will add 'client.' by default.
.TP
-.BI (mtd)skipbad \fR=\fPbool
+.BI (mtd)skip_bad \fR=\fPbool
Skip operations against known bad blocks.
.SH OUTPUT
While running, \fBfio\fR will display the status of the created jobs. For
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
.fi
.RE
+.SH JSON+ OUTPUT
+The \fBjson+\fR output format is identical to the \fBjson\fR output format except that it
+adds a full dump of the completion latency bins. Each \fBbins\fR object contains a
+set of (key, value) pairs where keys are latency durations and values count how
+many I/Os had completion latencies of the corresponding duration. For example,
+consider:
+
+.RS
+"bins" : { "87552" : 1, "89600" : 1, "94720" : 1, "96768" : 1, "97792" : 1, "99840" : 1, "100864" : 2, "103936" : 6, "104960" : 534, "105984" : 5995, "107008" : 7529, ... }
+.RE
+
+This data indicates that one I/O required 87,552ns to complete, two I/Os required
+100,864ns to complete, and 7529 I/Os required 107,008ns to complete.
+
+Also included with fio is a Python script \fBfio_jsonplus_clat2csv\fR that takes
+json+ output and generates CSV-formatted latency data suitable for plotting.
+
+The latency durations actually represent the midpoints of latency intervals.
+For details refer to stat.h.
+
+
.SH TRACE FILE FORMAT
There are two trace file format that you can encounter. The older (v1) format
is unsupported since version 1.20-rc3 (March 2008). It will still be described