1 .TH BTT 1 "September 29, 2007" "blktrace git\-20070910192508" ""
5 btt \- analyse block i/o traces produces by blktrace
10 [ \-a | \-\-seek\-absolute ]
12 [ \-A | \-\-all\-data ]
14 [ \-B <\fIoutput name\fR> | \-\-dump\-blocknos=<\fIoutput name\fR> ]
16 [ \-d <\fIseconds\fR> | \-\-range\-delta=<\fIseconds\fR> ]
18 [ \-D <\fIdev;...\fR> | \-\-devices=<\fIdev;...\fR> ]
20 [ \-e <\fIexe,...\fR> | \-\-exes=<\fIexe,...\fR> ]
24 [ \-i <\fIinput name\fR> | \-\-input\-file=<\fIinput name\fR> ]
26 [ \-I <\fIoutput name\fR> | \-\-iostat=<\fIoutput name\fR> ]
28 [ \-l <\fIoutput name\fR> | \-\-d2c\-latencies=<\fIoutput name\fR> ]
30 [ \-M <\fIdev map\fR> | \-\-dev\-maps=<\fIdev map\fR>
32 [ \-o <\fIoutput name\fR> | \-\-output\-file=<\fIoutput name\fR> ]
34 [ \-p <\fIoutput name\fR> | \-\-per\-io\-dump=<\fIoutput name\fR> ]
36 [ \-q <\fIoutput name\fR> | \-\-q2c\-latencies=<\fIoutput name\fR> ]
38 [ \-Q <\fIoutput name\fR> | \-\-active\-queue\-depth=<\fIoutput name\fR> ]
40 [ \-s <\fIoutput name\fR> | \-\-seeks=<\fIoutput name\fR> ]
42 [ \-S <\fIinterval\fR> | \-\-iostat\-interval=<\fIinterval\fR> ]
44 [ \-t <\fIsec\fR> | \-\-time\-start=<\fIsec\fR> ]
46 [ \-T <\fIsec\fR> | \-\-time\-end=<\fIsec\fR> ]
48 [ \-u <\fIoutput name\fR> | \-\-unplug\-hist=<\fIoutput name\fR> ]
57 btt is a post\-processing tool for the block layer IO tracing tool called
58 blktrace(8). As noted in its documentation, blktrace
59 is a block layer IO tracing mechanism which provides detailed
60 information about request queue operations up to user space.
62 btt will take in binary dump data from blkparse, and analyse the events,
63 producing a series of output from the analysis. It will also build .dat
64 files containing "range data" \-\- showing things like Q activity (periods
65 of time while Q events are being produced), C activity (likewise for
66 command completions), and etc.
68 Included with the distribution is a simple 3D plotting utility,
69 \fIbno_plot\fR, which can plot the block numbers btss outputs if the \fI-B\fR
70 option is specified. The display will display each IO generated, with the time
71 (seconds) along the X-axis, the block number (start) along the Y-axis and the
72 number of blocks transferred in the IO represented along the Z-axis.
81 When specified on the command line, this directs btt to calculate
82 seek distances based solely upon the ending block address of one IO,
83 and the start of the next. By default \fBbtt\fR uses the concept
84 of the closeness to either the beginning or end of the previous IO. See
85 the Users Manual for more details about seek distances.
92 Normally \fBbtt\fR will not print out verbose information concerning
93 per-process and per-device data. If you desire that level of detail you can
97 .B \-B <\fIoutput name\fR>
99 .B \-\-dump\-blocknos=<\fIoutput name\fR>
101 This option will output absolute block numbers to three files prefixed
102 by the specified output name:
104 .I prefix_device_r.dat
106 All read block numbers are output, first column is time (seconds), second is
107 the block number, and the third column is the ending block number.
109 .I prefix_device_w.dat
111 All write block numbers are output, first column is time (seconds), second is
112 the block number, and the third column is the ending block number.
114 .I prefix_device_c.dat
116 All block numbers (read and write) are output, first column is time (seconds),
117 second is the block number, and the third column is the ending block number.
120 .B \-d <\fIseconds\fR>
122 .B \-\-range\-delta=<\fIseconds\fR>
124 \fBbtt\fR outputs a file containing Q and C activity, the notion of active
125 traces simply means that there are Q or C traces occurring within a certain
126 period of each other. The default values is 0.1 seconds; with this option
127 allowing one to change that granularity. The smaller the value, the more data
131 .B \-D <\fIdev;...\fR>
133 .B \-\-devices=<\fIdev;...\fR>
135 Normally, \fBbtt\fR will produce data for all devices detected in the
136 traces parsed. With this option, one can reduce the analysis to one or more
137 devices provided in the string passed to this option. The device identifiers
138 are the major and minor number of each device, and each device identifier is
139 separated by a colon (:). A valid specifier for devices 8,0 and 8,8 would then
143 .B \-e <\fIexe,...\fR>
145 .B \-\-exes=<\fIexe,...\fR>
147 The \-e option supplies the list of executables that will have I/Os
155 Shows a short summary of possible command line option
158 .B \-i <\fIinput name\fR>
160 .B \-\-input\-file <\fIinput file\fR>
162 Specifies the input file to analyse. This should be a trace file produced
163 by \fIblktrace\fR (8).
166 .B \-I <\fIoutput name\fR>
168 .B \-\-iostat=<\fIoutput name\fR>
170 The \-I option directs btt to output iostat\-like data to the specified
171 file. Refer to the iostat (sysstat) documentation for details on the
175 .B \-l <\fIoutput name\fR>
177 .B \-\-d2c\-latencies=<\fIoutput name\fR>
179 The \-l option allows one to output per\-IO D2C latencies
180 respectively. The supplied argument provides the basis for the output
181 name for each device.
184 .B \-M <\fIdev map\fR>
186 .B \-\-dev\-maps=<\fIdev map\fR>
188 The \-M option takes in a file generated by the provided script
189 (gen_disk_info.py), and allows for better output of device names.
192 .B \-o <\fIoutput name\fR>
194 .B \-\-output\-file=<\fIoutput name\fR>
196 Specifies the output file name.
199 .B \-p <\fIoutput name\fR>
201 .B \-\-per\-io\-dump=<\fIoutput name\fR>
203 The \-p option will generate a file that contains a list of all IO
204 "sequences" \- showing the parts of each IO (Q, A, I/M, D, & C).
207 .B \-q <\fIoutput name\fR>
209 .B \-\-q2c\-latencies=<\fIoutput name\fR>
211 The \-q option allows one to output per\-IO Q2C latencies
212 respectively. The supplied argument provides the basis for the output
213 name for each device.
216 .B \-Q <\fIoutput name\fR>
218 .B \-\-active\-queue\-depth=<\fIoutput name\fR>
220 The \-Q option allows one to output data files showing the time stamp
221 and the depth of active commands (those issued but not completed).
224 .B \-s <\fIoutput name\fR>
226 .B \-\-seeks=<\fIoutput name\fR>
228 The \-s option instructs btt to output seek data, the argument provided
229 is the basis for file names output. There are two files per device,
230 read seeks and write seeks.
233 .B \-S <\fIinterval\fR>
235 .B \-\-iostat\-interval=<\fIinterval\fR>
237 The \-S option specifies the interval to use between data
238 output, it defaults to once per second.
243 .B \-\-time\-start=<\fIsec\fR>
247 .B \-\-time\-end=<\fIsec\fR>
249 The \-t/\-T options allow one to set a start and/or end time for analysing
250 \- analysing will only be done for traces after \-t's argument and before
251 \-T's argument. (\-t and \-T are optional, so if you specify just \-t,
252 analysis will occur for all traces after the time specified. Similarly,
253 if only \-T is specified, analysis stops after \-T's seconds.)
256 .B \-u <\fIoutput name\fR>
258 .B \-\-unplug\-hist=<\fIoutput name\fR>
260 This option instructs \fBbtt\fR to generate a data file containing histogram
261 information for unplug traces on a per device basis. It shows how many
262 times an unplug was hit with a specified number of IOs released. There are 21
263 output values into the file, as follows:
266 a value of 0 represents 0..4 counts
268 a value of 1 represents 5..9 counts
270 a value of 2 represents 10..14 counts
274 a value of 20 represents 100+ counts
278 The file name(s) generated use the text string passed as an argument for
279 the prefix, followed by the device identifier in \fImajor,minor\fR
280 form, with a \fI.dat\fR extension. For example, with \fI\-u
281 up_hist\fR specified on the command line: \fIup_hist_008,032.dat\fR.
288 Shows the version of btt.
295 Requests a more verbose output.
300 \fIblkparse\fR was written by Jens Axboe, Alan D. Brunelle and Nathan Scott. This
301 man page was created from the \fIblktrace\fR documentation by Bas Zoetekouw.
305 Report bugs to <linux\-btrace@vger.kernel.org>
308 Copyright \(co 2006 Jens Axboe, Alan D. Brunelle and Nathan Scott.
310 This is free software. You may redistribute copies of it under the terms of
311 the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
312 There is NO WARRANTY, to the extent permitted by law.
314 This manual page was created for Debian by Bas Zoetekouw. It was derived from
315 the documentation provided by the authors and it may be used, distributed and
316 modified under the terms of the GNU General Public License, version 2.
318 On Debian systems, the text of the GNU General Public License can be found in
319 /usr/share/common\-licenses/GPL\-2.
322 The btt Users Guide, which can be found in /usr/share/doc/blktrace/btt.pdf
324 bno_plot (1), blktrace (8), blkparse (1), verify_blkparse (1), blkrawverify (1), btt (1)