1BTT(1)                                                                  BTT(1)
2
3
4

NAME

6       btt - analyse block i/o traces produces by blktrace
7
8
9

SYNOPSIS

11       btt
12       [ -a               | --seek-absolute ]
13       [ -A               | --all-data ]
14       [ -B <output name> | --dump-blocknos=<output name> ]
15       [ -d <seconds>     | --range-delta=<seconds> ]
16       [ -D <dev;...>     | --devices=<dev;...> ]
17       [ -e <exe,...>     | --exes=<exe,...>  ]
18       [ -h               | --help ]
19       [ -i <input name>  | --input-file=<input name> ]
20       [ -I <output name> | --iostat=<output name> ]
21       [ -l <output name> | --d2c-latencies=<output name> ]
22       [ -L <freq>        | --periodic-latencies=<freq> ]
23       [ -M <dev map>     | --dev-maps=<dev map>
24       [ -o <output name> | --output-file=<output name> ]
25       [ -p <output name> | --per-io-dump=<output name> ]
26       [ -P <output name> | --per-io-trees=<output name> ]
27       [ -q <output name> | --q2c-latencies=<output name> ]
28       [ -Q <output name> | --active-queue-depth=<output name> ]
29       [ -r               | --no-remaps ]
30       [ -s <output name> | --seeks=<output name> ]
31       [ -S <interval>    | --iostat-interval=<interval> ]
32       [ -t <sec>         | --time-start=<sec> ]
33       [ -T <sec>         | --time-end=<sec> ]
34       [ -u <output name> | --unplug-hist=<output name> ]
35       [ -v               | --verbose ]
36       [ -V               | --version ]
37       [ -z <output name> | --q2d-latencies=<output name> ]
38
39
40

DESCRIPTION

42       btt  is  a  post-processing  tool  for  the block layer IO tracing tool
43       called blktrace(8).  As noted in its documentation, blktrace is a block
44       layer  IO  tracing  mechanism which provides detailed information about
45       request queue operations up to user space.
46
47       btt will take in binary  dump  data  from  blkparse,  and  analyse  the
48       events,  producing  a  series of output from the analysis. It will also
49       build .dat files containing "range  data"  --  showing  things  like  Q
50       activity  (periods of time while Q events are being produced), C activ‐
51       ity (likewise for command completions), and etc.
52
53       Included with  the  distribution  is  a  simple  3D  plotting  utility,
54       bno_plot, which can plot the block numbers btt outputs if the -B option
55       is specified. The display will display each IO generated, with the time
56       (seconds)  along  the X-axis, the block number (start) along the Y-axis
57       and the number of blocks transferred in the IO represented along the Z-
58       axis.
59
60
61

OPTIONS

63       -a
64       --seek-absolute
65           When  specified  on the command line, this directs btt to calculate
66           seek distances based solely upon the ending block  address  of  one
67           IO,  and the start of the next.  By default btt uses the concept of
68           the closeness to either the beginning or end of  the  previous  IO.
69           See the Users Manual for more details about seek distances.
70
71       -A
72       --all-data
73           Normally btt will not print out verbose information concerning per-
74           process and per-device data.  If you desire that  level  of  detail
75           you can specify this option.
76
77       -B <output name>
78       --dump-blocknos=<output name>
79           This  option will output absolute block numbers to three files pre‐
80           fixed by the specified output name:
81
82           prefix_device_r.dat
83                  All read block numbers are  output,  first  column  is  time
84                  (seconds),  second is the block number, and the third column
85                  is the ending block number.
86
87           prefix_device_w.dat
88                  All write block numbers are output,  first  column  is  time
89                  (seconds),  second is the block number, and the third column
90                  is the ending block number.
91
92           prefix_device_c.dat
93                  All block numbers (read and write) are output, first  column
94                  is time (seconds), second is the block number, and the third
95                  column is the ending block number.
96
97       -d <seconds>
98       --range-delta=<seconds>
99           btt outputs a file containing Q  and  C  activity,  the  notion  of
100           active  traces  simply means that there are Q or C traces occurring
101           within a certain period of each other. The default  values  is  0.1
102           seconds;  with this option allowing one to change that granularity.
103           The smaller the value, the more data points provided.
104
105       -D <dev;...>
106       --devices=<dev;...>
107           Normally, btt will produce data for all  devices  detected  in  the
108           traces parsed. With this option, one can reduce the analysis to one
109           or more devices provided in the string passed to this  option.  The
110           device  identifiers  are the major and minor number of each device,
111           and each device identifier is separated by a  colon  (:).  A  valid
112           specifier for devices 8,0 and 8,8 would then be: 8,0:8,8.
113
114       -e <exe,...>
115       --exes=<exe,...>
116           The  -e option supplies the list of executables that will have I/Os
117           analysed.
118
119       -h
120       --help
121           Shows a short summary of possible command line option
122
123       -i <input name>
124       --input-file <input file>
125           Specifies the input file to analyse.  This should be a  trace  file
126           produced by blktrace (8).
127
128       -I <output name>
129       --iostat=<output name>
130           The  -I option directs btt to output iostat-like data to the speci‐
131           fied file.  Refer to the iostat (sysstat) documentation for details
132           on the data columns.
133
134       -l <output name>
135       --d2c-latencies=<output name>
136           The  -l  option  allows  one to output per-IO D2C latencies respec‐
137           tively. The supplied argument provides the  basis  for  the  output
138           name for each device.
139
140       -L <freq>
141       --periodic-latencies=<freq>
142           The -L option allows one to output periodic latency information for
143           both Q2C and D2C latencies. The frequency specified  will  regulate
144           how  often  an  average latency is output -- a floating point value
145           expressing seconds.
146
147       -M <dev map>
148       --dev-maps=<dev map>
149           The -M option takes in a file  generated  by  the  provided  script
150           (gen_disk_info.py), and allows for better output of device names.
151
152       -o <output name>
153       --output-file=<output name>
154           Specifies the output file name.
155
156       -p <output name>
157       --per-io-dump=<output name>
158           The  -p  option will generate a file that contains a list of all IO
159           "sequences" - showing the parts of each IO (Q, A, I/M, D, & C).
160
161       -P <output name>
162       --per-io-trees=<output name>
163           The -P option will generate a file that contains a list of  all  IO
164           "sequences"  - showing only the Q, D & C operation times. The D & C
165           time values are separated from the Q time values  with  a  vertical
166           bar.
167
168       -q <output name>
169       --q2c-latencies=<output name>
170           The  -q  option  allows  one to output per-IO Q2C latencies respec‐
171           tively. The supplied argument provides the  basis  for  the  output
172           name for each device.
173
174       -Q <output name>
175       --active-queue-depth=<output name>
176           The  -Q  option  allows  one  to output data files showing the time
177           stamp and the depth of active commands (those issued but  not  com‐
178           pleted).
179
180       -r
181       --no-remaps
182           Ignore remap traces; older kernels did not implement the full remap
183           PDU.
184
185       -s <output name>
186       --seeks=<output name>
187           The -s option instructs btt to output seek data, the argument  pro‐
188           vided  is  the basis for file names output. There are two files per
189           device, read seeks and write seeks.
190
191       -S <interval>
192       --iostat-interval=<interval>
193           The -S option specifies the interval to use between data output, it
194           defaults to once per second.
195
196       -t <sec>
197       --time-start=<sec>
198       -T <sec>
199       --time-end=<sec>
200           The  -t/-T  options  allow  one  to set a start and/or end time for
201           analysing - analysing will only be done for traces after -t's argu‐
202           ment  and  before -T's argument. (-t and -T are optional, so if you
203           specify just -t, analysis will occur for all traces after the  time
204           specified. Similarly, if only -T is specified, analysis stops after
205           -T's seconds.)
206
207       -u <output name>
208       --unplug-hist=<output name>
209           This option instructs btt to generate a data file  containing  his‐
210           togram  information  for  unplug  traces  on a per device basis. It
211           shows how many times an unplug was hit with a specified  number  of
212           IOs released. There are 21 output values into the file, as follows:
213
214               a value of 0 represents 0..4 counts
215               a value of 1 represents 5..9 counts
216               a value of 2 represents 10..14 counts
217               etc, until
218               a value of 20 represents 100+ counts
219
220           The  file  name(s) generated use the text string passed as an argu‐
221           ment  for  the  prefix,  followed  by  the  device  identifier   in
222           major,minor  form,  with  a  .dat  extension.  For example, with -u
223           up_hist specified on the command line: up_hist_008,032.dat.
224
225       -V
226       --version
227           Shows the version of btt.
228
229       -v
230       --verbose
231           Requests a more verbose output.
232
233       -z <output name>
234       --q2d-latencies=<output name>
235           The -z option allows one to output  per-IO  Q2D  latencies  respec‐
236           tively.  The  supplied  argument  provides the basis for the output
237           name for each device.
238
239
240

AUTHORS

242       btt was written by Alan D. Brunelle.  This man page  was  created  from
243       the blktrace documentation by Bas Zoetekouw.
244
245
246

REPORTING BUGS

248       Report bugs to <linux-btrace@vger.kernel.org>
249
250
252       Copyright © 2006 Jens Axboe, Alan D. Brunelle and Nathan Scott.
253       This  is  free  software.   You may redistribute copies of it under the
254       terms      of      the      GNU      General       Public       License
255       <http://www.gnu.org/licenses/gpl.html>.   There  is NO WARRANTY, to the
256       extent permitted by law.
257       This manual page was created for  Debian  by  Bas  Zoetekouw.   It  was
258       derived  from  the  documentation provided by the authors and it may be
259       used, distributed and modified under the terms of the GNU General  Pub‐
260       lic License, version 2.
261       On  Debian  systems,  the text of the GNU General Public License can be
262       found in /usr/share/common-licenses/GPL-2.
263
264

SEE ALSO

266       The  btt  Users  Guide,  which  can  be  found  in  /usr/share/doc/blk‐
267       trace/btt.pdf
268       bno_plot   (1),   blktrace  (8),  blkparse  (1),  verify_blkparse  (1),
269       blkrawverify (1), btt (1)
270
271
272
273
274blktrace git-20070910192508   September 29, 2007                        BTT(1)
Impressum