aboutsummaryrefslogtreecommitdiff
path: root/doc/btt.1
diff options
context:
space:
mode:
Diffstat (limited to 'doc/btt.1')
-rw-r--r--doc/btt.1369
1 files changed, 369 insertions, 0 deletions
diff --git a/doc/btt.1 b/doc/btt.1
new file mode 100644
index 0000000..b9c9ee7
--- /dev/null
+++ b/doc/btt.1
@@ -0,0 +1,369 @@
+.TH BTT 1 "September 29, 2007" "blktrace git\-20070910192508" ""
+
+
+.SH NAME
+btt \- analyse block i/o traces produces by blktrace
+
+
+.SH SYNOPSIS
+.B btt
+.br
+[ \-a | \-\-seek\-absolute ]
+.br
+[ \-A | \-\-all\-data ]
+.br
+[ \-B <\fIoutput name\fR> | \-\-dump\-blocknos=<\fIoutput name\fR> ]
+.br
+[ \-d <\fIseconds\fR> | \-\-range\-delta=<\fIseconds\fR> ]
+.br
+[ \-D <\fIdev;...\fR> | \-\-devices=<\fIdev;...\fR> ]
+.br
+[ \-e <\fIexe,...\fR> | \-\-exes=<\fIexe,...\fR> ]
+.br
+[ \-h | \-\-help ]
+.br
+[ \-i <\fIinput name\fR> | \-\-input\-file=<\fIinput name\fR> ]
+.br
+[ \-I <\fIoutput name\fR> | \-\-iostat=<\fIoutput name\fR> ]
+.br
+[ \-l <\fIoutput name\fR> | \-\-d2c\-latencies=<\fIoutput name\fR> ]
+.br
+[ \-L <\fIfreq\fR> | \-\-periodic\-latencies=<\fIfreq\fR> ]
+.br
+[ \-M <\fIdev map\fR> | \-\-dev\-maps=<\fIdev map\fR>
+.br
+[ \-o <\fIoutput name\fR> | \-\-output\-file=<\fIoutput name\fR> ]
+.br
+[ \-p <\fIoutput name\fR> | \-\-per\-io\-dump=<\fIoutput name\fR> ]
+.br
+[ \-P <\fIoutput name\fR> | \-\-per\-io\-trees=<\fIoutput name\fR> ]
+.br
+[ \-q <\fIoutput name\fR> | \-\-q2c\-latencies=<\fIoutput name\fR> ]
+.br
+[ \-Q <\fIoutput name\fR> | \-\-active\-queue\-depth=<\fIoutput name\fR> ]
+.br
+[ \-r | \-\-no\-remaps ]
+.br
+[ \-s <\fIoutput name\fR> | \-\-seeks=<\fIoutput name\fR> ]
+.br
+[ \-S <\fIinterval\fR> | \-\-iostat\-interval=<\fIinterval\fR> ]
+.br
+[ \-t <\fIsec\fR> | \-\-time\-start=<\fIsec\fR> ]
+.br
+[ \-T <\fIsec\fR> | \-\-time\-end=<\fIsec\fR> ]
+.br
+[ \-u <\fIoutput name\fR> | \-\-unplug\-hist=<\fIoutput name\fR> ]
+.br
+[ \-v | \-\-verbose ]
+.br
+[ \-V | \-\-version ]
+.br
+[ \-z <\fIoutput name\fR> | \-\-q2d\-latencies=<\fIoutput name\fR> ]
+
+
+.SH DESCRIPTION
+
+btt is a post\-processing tool for the block layer IO tracing tool called
+blktrace(8). As noted in its documentation, blktrace
+is a block layer IO tracing mechanism which provides detailed
+information about request queue operations up to user space.
+
+btt will take in binary dump data from blkparse, and analyse the events,
+producing a series of output from the analysis. It will also build .dat
+files containing "range data" \-\- showing things like Q activity (periods
+of time while Q events are being produced), C activity (likewise for
+command completions), and etc.
+
+Included with the distribution is a simple 3D plotting utility,
+\fIbno_plot\fR, which can plot the block numbers btt outputs if the \fI-B\fR
+option is specified. The display will display each IO generated, with the time
+(seconds) along the X-axis, the block number (start) along the Y-axis and the
+number of blocks transferred in the IO represented along the Z-axis.
+
+
+.SH OPTIONS
+
+.B \-a
+.br
+.B \-\-seek\-absolute
+.RS 4
+When specified on the command line, this directs btt to calculate
+seek distances based solely upon the ending block address of one IO,
+and the start of the next. By default \fBbtt\fR uses the concept
+of the closeness to either the beginning or end of the previous IO. See
+the Users Manual for more details about seek distances.
+.RE
+
+.B \-A
+.br
+.B \-\-all\-data
+.RS 4
+Normally \fBbtt\fR will not print out verbose information concerning
+per-process and per-device data. If you desire that level of detail you can
+specify this option.
+.RE
+
+.B \-B <\fIoutput name\fR>
+.br
+.B \-\-dump\-blocknos=<\fIoutput name\fR>
+.RS 4
+This option will output absolute block numbers to three files prefixed
+by the specified output name:
+.HP
+.I prefix_device_r.dat
+.br
+All read block numbers are output, first column is time (seconds), second is
+the block number, and the third column is the ending block number.
+.HP
+.I prefix_device_w.dat
+.br
+All write block numbers are output, first column is time (seconds), second is
+the block number, and the third column is the ending block number.
+.HP
+.I prefix_device_c.dat
+.br
+All block numbers (read and write) are output, first column is time (seconds),
+second is the block number, and the third column is the ending block number.
+.RE
+
+.B \-d <\fIseconds\fR>
+.br
+.B \-\-range\-delta=<\fIseconds\fR>
+.RS 4
+\fBbtt\fR outputs a file containing Q and C activity, the notion of active
+traces simply means that there are Q or C traces occurring within a certain
+period of each other. The default values is 0.1 seconds; with this option
+allowing one to change that granularity. The smaller the value, the more data
+points provided.
+.RE
+
+.B \-D <\fIdev;...\fR>
+.br
+.B \-\-devices=<\fIdev;...\fR>
+.RS 4
+Normally, \fBbtt\fR will produce data for all devices detected in the
+traces parsed. With this option, one can reduce the analysis to one or more
+devices provided in the string passed to this option. The device identifiers
+are the major and minor number of each device, and each device identifier is
+separated by a colon (:). A valid specifier for devices 8,0 and 8,8 would then
+be: \fI8,0:8,8\fR.
+.RE
+
+.B \-e <\fIexe,...\fR>
+.br
+.B \-\-exes=<\fIexe,...\fR>
+.RS 4
+The \-e option supplies the list of executables that will have I/Os
+analysed.
+.RE
+
+.B \-h
+.br
+.B \-\-help
+.RS 4
+Shows a short summary of possible command line option
+.RE
+
+.B \-i <\fIinput name\fR>
+.br
+.B \-\-input\-file <\fIinput file\fR>
+.RS 4
+Specifies the input file to analyse. This should be a trace file produced
+by \fIblktrace\fR (8).
+.RE
+
+.B \-I <\fIoutput name\fR>
+.br
+.B \-\-iostat=<\fIoutput name\fR>
+.RS 4
+The \-I option directs btt to output iostat\-like data to the specified
+file. Refer to the iostat (sysstat) documentation for details on the
+data columns.
+.RE
+
+.B \-l <\fIoutput name\fR>
+.br
+.B \-\-d2c\-latencies=<\fIoutput name\fR>
+.RS 4
+The \-l option allows one to output per\-IO D2C latencies
+respectively. The supplied argument provides the basis for the output
+name for each device.
+.RE
+
+.B \-L <\fIfreq\fR>
+.br
+.B \-\-periodic\-latencies=<\fIfreq\fR>
+.RS 4
+The \-L option allows one to output periodic latency information for both
+Q2C and D2C latencies. The frequency specified will regulate how often
+an average latency is output -- a floating point value expressing seconds.
+.RE
+
+.B \-M <\fIdev map\fR>
+.br
+.B \-\-dev\-maps=<\fIdev map\fR>
+.RS 4
+The \-M option takes in a file generated by the provided script
+(gen_disk_info.py), and allows for better output of device names.
+.RE
+
+.B \-o <\fIoutput name\fR>
+.br
+.B \-\-output\-file=<\fIoutput name\fR>
+.RS 4
+Specifies the output file name.
+.RE
+
+.B \-p <\fIoutput name\fR>
+.br
+.B \-\-per\-io\-dump=<\fIoutput name\fR>
+.RS 4
+The \-p option will generate a file that contains a list of all IO
+"sequences" \- showing the parts of each IO (Q, A, I/M, D, & C).
+.RE
+
+.B \-P <\fIoutput name\fR>
+.br
+.B \-\-per\-io\-trees=<\fIoutput name\fR>
+.RS 4
+The \-P option will generate a file that contains a list of all IO
+"sequences" \- showing only the Q, D & C operation times. The D & C
+time values are separated from the Q time values with a vertical bar.
+.RE
+
+.B \-q <\fIoutput name\fR>
+.br
+.B \-\-q2c\-latencies=<\fIoutput name\fR>
+.RS 4
+The \-q option allows one to output per\-IO Q2C latencies
+respectively. The supplied argument provides the basis for the output
+name for each device.
+.RE
+
+.B \-Q <\fIoutput name\fR>
+.br
+.B \-\-active\-queue\-depth=<\fIoutput name\fR>
+.RS 4
+The \-Q option allows one to output data files showing the time stamp
+and the depth of active commands (those issued but not completed).
+.RE
+
+.B \-r
+.br
+.B \-\-no\-remaps
+.RS 4
+Ignore remap traces; older kernels did not implement the full remap
+PDU.
+.RE
+
+.B \-s <\fIoutput name\fR>
+.br
+.B \-\-seeks=<\fIoutput name\fR>
+.RS 4
+The \-s option instructs btt to output seek data, the argument provided
+is the basis for file names output. There are two files per device,
+read seeks and write seeks.
+.RE
+
+.B \-S <\fIinterval\fR>
+.br
+.B \-\-iostat\-interval=<\fIinterval\fR>
+.RS 4
+The \-S option specifies the interval to use between data
+output, it defaults to once per second.
+.RE
+
+.B \-t <\fIsec\fR>
+.br
+.B \-\-time\-start=<\fIsec\fR>
+.br
+.B \-T <\fIsec\fR>
+.br
+.B \-\-time\-end=<\fIsec\fR>
+.RS 4
+The \-t/\-T options allow one to set a start and/or end time for analysing
+\- analysing will only be done for traces after \-t's argument and before
+\-T's argument. (\-t and \-T are optional, so if you specify just \-t,
+analysis will occur for all traces after the time specified. Similarly,
+if only \-T is specified, analysis stops after \-T's seconds.)
+.RE
+
+.B \-u <\fIoutput name\fR>
+.br
+.B \-\-unplug\-hist=<\fIoutput name\fR>
+.RS 4
+This option instructs \fBbtt\fR to generate a data file containing histogram
+information for unplug traces on a per device basis. It shows how many
+times an unplug was hit with a specified number of IOs released. There are 21
+output values into the file, as follows:
+
+.RS 4
+a value of 0 represents 0..4 counts
+.br
+a value of 1 represents 5..9 counts
+.br
+a value of 2 represents 10..14 counts
+.br
+etc, until
+.br
+a value of 20 represents 100+ counts
+.br
+.RE
+
+The file name(s) generated use the text string passed as an argument for
+the prefix, followed by the device identifier in \fImajor,minor\fR
+form, with a \fI.dat\fR extension. For example, with \fI\-u
+up_hist\fR specified on the command line: \fIup_hist_008,032.dat\fR.
+.RE
+
+.B \-V
+.br
+.B \-\-version
+.RS 4
+Shows the version of btt.
+.RE
+
+.B \-v
+.br
+.B \-\-verbose
+.RS 4
+Requests a more verbose output.
+.RE
+
+.B \-z <\fIoutput name\fR>
+.br
+.B \-\-q2d\-latencies=<\fIoutput name\fR>
+.RS 4
+The \-z option allows one to output per\-IO Q2D latencies
+respectively. The supplied argument provides the basis for the output
+name for each device.
+.RE
+
+
+.SH AUTHORS
+\fIbtt\fR was written by Alan D. Brunelle. This man page was created
+from the \fIblktrace\fR documentation by Bas Zoetekouw.
+
+
+.SH "REPORTING BUGS"
+Report bugs to <linux\-btrace@vger.kernel.org>
+
+.SH COPYRIGHT
+Copyright \(co 2006 Jens Axboe, Alan D. Brunelle and Nathan Scott.
+.br
+This is free software. You may redistribute copies of it under the terms of
+the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
+There is NO WARRANTY, to the extent permitted by law.
+.br
+This manual page was created for Debian by Bas Zoetekouw. It was derived from
+the documentation provided by the authors and it may be used, distributed and
+modified under the terms of the GNU General Public License, version 2.
+.br
+On Debian systems, the text of the GNU General Public License can be found in
+/usr/share/common\-licenses/GPL\-2.
+
+.SH "SEE ALSO"
+The btt Users Guide, which can be found in /usr/share/doc/blktrace/btt.pdf
+.br
+bno_plot (1), blktrace (8), blkparse (1), verify_blkparse (1), blkrawverify (1), btt (1)
+