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 <output name> | --seeks-per-second=<output name> ]
24       [ -M <dev map>     | --dev-maps=<dev map>
25       [ -o <output name> | --output-file=<output name> ]
26       [ -p <output name> | --per-io-dump=<output name> ]
27       [ -P <output name> | --per-io-trees=<output name> ]
28       [ -q <output name> | --q2c-latencies=<output name> ]
29       [ -Q <output name> | --active-queue-depth=<output name> ]
30       [ -r               | --no-remaps ]
31       [ -s <output name> | --seeks=<output name> ]
32       [ -S <interval>    | --iostat-interval=<interval> ]
33       [ -t <sec>         | --time-start=<sec> ]
34       [ -T <sec>         | --time-end=<sec> ]
35       [ -u <output name> | --unplug-hist=<output name> ]
36       [ -v               | --verbose ]
37       [ -V               | --version ]
38       [ -X               | --easy-parse-avgs ]
39       [ -z <output name> | --q2d-latencies=<output name> ]
40
41
42

DESCRIPTION

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

OPTIONS

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

AUTHORS

255       btt  was  written  by Alan D. Brunelle.  This man page was created from
256       the blktrace documentation by Bas Zoetekouw.
257
258
259

REPORTING BUGS

261       Report bugs to <linux-btrace@vger.kernel.org>
262
263
265       Copyright © 2006 Jens Axboe, Alan D. Brunelle and Nathan Scott.
266       This is free software.  You may redistribute copies  of  it  under  the
267       terms       of       the      GNU      General      Public      License
268       <http://www.gnu.org/licenses/gpl.html>.  There is NO WARRANTY,  to  the
269       extent permitted by law.
270       This  manual  page  was  created  for  Debian by Bas Zoetekouw.  It was
271       derived from the documentation provided by the authors and  it  may  be
272       used,  distributed and modified under the terms of the GNU General Pub‐
273       lic License, version 2.
274       On Debian systems, the text of the GNU General Public  License  can  be
275       found in /usr/share/common-licenses/GPL-2.
276
277

SEE ALSO

279       The  btt  Users  Guide,  which  can  be  found  in  /usr/share/doc/blk‐
280       trace/btt.pdf
281       bno_plot  (1),  blktrace  (8),  blkparse  (1),   verify_blkparse   (1),
282       blkrawverify (1), btt (1)
283
284
285
286
287blktrace git-20070910192508   September 29, 2007                        BTT(1)
Impressum