iowatcher: check the return value from write()
[blktrace.git] / doc / btrecord.8
CommitLineData
fbdf23ec 1.TH BTRECORD 8 "December 8, 2007" "blktrace git\-20071207142532" ""
a84a97fd
BZ
2
3
4.SH NAME
5btrecord \- recreate IO loads recorded by blktrace
6
7
8.SH SYNOPSIS
9.B Usage:
10
11btrecord [ \fIoptions\fR ] <\fIdev\fR...>
12
13
14.SH DESCRIPTION
15
16.P
17The \fIbtrecord\fR and \fIbtreplay\fR tools provide the ability to
18record and replay IOs captured by the \fIblktrace\fR utility. Attempts
19are made to maintain ordering, CPU mappings and time-separation of IOs.
20
21
22.P
23The \fIblktrace\fR utility provides the ability to collect detailed
24traces from the kernel for each IO processed by the block IO layer. The
25traces provide a complete timeline for each IO processed, including
26detailed information concerning when an IO was first received by the block
27IO layer \(em indicating the device, CPU number, time stamp, IO direction,
28sector number and IO size (number of sectors). Using this information,
29one is able to \fBreplay\fR the IO again on the same machine or another
30set up entirely.
31
32.P
33The basic operating work-flow to replay IOs would be something like:
34
35.IP \- 2
36 Run \fIblktrace\fR to collect traces. Here you specify the
37 device or devices that you wish to trace and later replay IOs upon. Note:
38 the only traces you are interested in are \fBQUEUE\fR requests \(em
39 thus, to save system resources (including storage for traces), one could
40 specify the \fI-a queue\fR command line option to \fIblktrace\fR.
41
42.IP \- 2
43 While \fIblktrace\fR is running, you run the workload that you
44 are interested in.
45
46.IP \- 2
47 When the work load has completed, you stop the \fIblktrace\fR
48 utility (thus saving all traces over the complete workload).
49
50.IP \- 2
51 You extract the pertinent IO information from the traces saved by
52 \fIblktrace\fR using the \fIbtrecord\fR utility. This will parse
53 each trace file created by \fIblktrace\fR, and crafty IO descriptions
54 to be used in the next phase of the workload processing.
55
56.IP \- 2
57 Once \fIbtrecord\fR has successfully created a series of data
58 files to be processed, you can run the \fIbtreplay\fR utility which
59 attempts to generate the same IOs seen during the sample workload phase.
60
61
62.SH OPTIONS
63
64\-d <\fIdir\fR>
65.br
66\-\-input\-directory=<\fIdir\fR>
67.RS
68Set input directory.
69This option requires a single parameter providing the directory
70name for where input files are to be found. The default directory is the
71current directory (\fI.\fR).
72.RE
73
74\-D <\fIdir\fR>
75.br
76\-\-output\-directory=<\fIdir\fR>
77.RS
78Set output directory.
79This option requires a single parameter providing the directory
80name for where output files are to be found. The default directory is the
81current directory (\fI.\fR).
82.RE
83
84\-F
85.br
86\-\-find\-traces
87.RS
88Find trace files automatically
89This option instructs \fIbtreplay\fR to go find all the trace files in the
90directory specified (either via the \fI-d\fR option, or in the default
91directory (\fI.\fR).
92.RE
93
94\-h
95.br
96\-\-help
97.RS
98Show help and exit.
99.RE
100
101\-V
102.br
103\-\-version
104.RS
105Show version number and exit.
106.RE
107
fbdf23ec 108\-m <\fInanoseconds\fR>
a84a97fd 109.br
4a197d19 110\-\-max\-bunch\-time=<\fInanoseconds\fR>
a84a97fd
BZ
111.RS
112The \fI\-m\fR option requires a single parameter which specifies an
113amount of time (in nanoseconds) to include in any one bunch of IOs that
114are to be processed. The smaller the value, the smaller the number of
115IOs processed at one time \(em perhaps yielding in more realistic replay.
116However, after a certain point the amount of overhead per bunch may result
fbdf23ec 117in additional real replay time, thus yielding less accurate replay times.
a84a97fd
BZ
118.P
119The default value is 10,000,000 nanoseconds (10 milliseconds).
120.RE
121
122\-M <\fInum\fR>
123.br
306a8ee9 124\-\-max\-pkts=<\fInum\fR>
a84a97fd
BZ
125.RS
126Set maximum number of packets per bunch.
127The \fI\-M\fR option requires a single parameter which specifies the
128maximum number of IOs to store in a single bunch. As with the \fI\-m\fR
129option, smaller values may or may not yield more accurate replay times.
130
131The default value is 8, with a maximum value of up to 512 being supported.
132.RE
133
134\-o <\fIbasename\fR>
135.br
136\-\-output\-base=<\fIbasename\fR>
137.RS
138Set base name for output files.
139Each output file has 3 fields:
140.IP 1. 3
141 Device identifier (taken directly from the device name of the
142 \fIblktrace\fR output file).
143.IP 2. 3
144 \fIbtrecord\fR base name \(em by default ``replay''.
145.IP 3. 3
146 The CPU number (again, taken directly from the
147 \fIblktrace\fR output file name).
148.P
149This option requires a single parameter that will override the default name
150(replay), and replace it with the specified value.
151.RE
152
153\-v
154.br
155\-\-verbose
156.RS
157Enable verbose output.
158This option will output some simple statistics at the end of a successful
159run. Example output is:
160.nf
161.P
162sdab:0: 580661 pkts (tot), 126030 pkts (replay), 89809 bunches, 1.4 pkts/bunch
163sdab:1: 2559775 pkts (tot), 430172 pkts (replay), 293029 bunches, 1.5 pkts/bunch
164sdab:2: 653559 pkts (tot), 136522 pkts (replay), 102288 bunches, 1.3 pkts/bunch
165sdab:3: 474773 pkts (tot), 117849 pkts (replay), 69572 bunches, 1.7 pkts/bunch
166.fi
167.P
168The meaning of the columns is:
169.IP 1. 3
fbdf23ec 170 The first field contains the device name and CPU identifier. Thus:
a84a97fd
BZ
171 \fIsdab:0:\fR means the device \fIsdab\fR and traces on CPU 0.
172.IP 2.
173 The second field contains the total number of packets processed for each
174 device file.
175.IP 3.
176 The next field shows the number of packets eligible for replay.
177.IP 4.
178 The fourth field contains the total number of IO bunches.
179.IP 5.
180 The last field shows the average number of IOs per bunch recorded.
181.RE
182
183
184.SH AUTHORS
185\fIbtrecord\fR was written by Alan D. Brunelle. This
186man page was created from the \fIbtreplay\fR documentation by Bas Zoetekouw.
187
188
189.SH "REPORTING BUGS"
190Report bugs to <linux\-btrace@vger.kernel.org>
191
192.SH COPYRIGHT
193Copyright \(co 2007 Alan D. Brunelle, Alan D. Brunelle and Nathan Scott.
194.br
195This is free software. You may redistribute copies of it under the terms of
196the GNU General Public License <http://www.gnu.org/licenses/gpl.html>.
197There is NO WARRANTY, to the extent permitted by law.
198.br
199This manual page was created for Debian by Bas Zoetekouw. It was derived from
200the documentation provided by the authors and it may be used, distributed and
201modified under the terms of the GNU General Public License, version 2.
202.br
203On Debian systems, the text of the GNU General Public License can be found in
204/usr/share/common\-licenses/GPL\-2.
205
206.SH "SEE ALSO"
207The full documentation for btreplay can be found in /usr/share/doc/blktrace on Debian systems.
208.br
209blktrace (8), blkparse (1), btreplay (8)
210