You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
211 lines
6.3 KiB
211 lines
6.3 KiB
.TH BTRECORD 8 "December 8, 2007" "blktrace git\-20071207142532" ""
|
|
|
|
|
|
.SH NAME
|
|
btrecord \- recreate IO loads recorded by blktrace
|
|
|
|
|
|
.SH SYNOPSIS
|
|
.B Usage:
|
|
|
|
btrecord [ \fIoptions\fR ] <\fIdev\fR...>
|
|
|
|
|
|
.SH DESCRIPTION
|
|
|
|
.P
|
|
The \fIbtrecord\fR and \fIbtreplay\fR tools provide the ability to
|
|
record and replay IOs captured by the \fIblktrace\fR utility. Attempts
|
|
are made to maintain ordering, CPU mappings and time-separation of IOs.
|
|
|
|
|
|
.P
|
|
The \fIblktrace\fR utility provides the ability to collect detailed
|
|
traces from the kernel for each IO processed by the block IO layer. The
|
|
traces provide a complete timeline for each IO processed, including
|
|
detailed information concerning when an IO was first received by the block
|
|
IO layer \(em indicating the device, CPU number, time stamp, IO direction,
|
|
sector number and IO size (number of sectors). Using this information,
|
|
one is able to \fBreplay\fR the IO again on the same machine or another
|
|
set up entirely.
|
|
|
|
.P
|
|
The basic operating work-flow to replay IOs would be something like:
|
|
|
|
.IP \- 2
|
|
Run \fIblktrace\fR to collect traces. Here you specify the
|
|
device or devices that you wish to trace and later replay IOs upon. Note:
|
|
the only traces you are interested in are \fBQUEUE\fR requests \(em
|
|
thus, to save system resources (including storage for traces), one could
|
|
specify the \fI-a queue\fR command line option to \fIblktrace\fR.
|
|
|
|
.IP \- 2
|
|
While \fIblktrace\fR is running, you run the workload that you
|
|
are interested in.
|
|
|
|
.IP \- 2
|
|
When the work load has completed, you stop the \fIblktrace\fR
|
|
utility (thus saving all traces over the complete workload).
|
|
|
|
.IP \- 2
|
|
You extract the pertinent IO information from the traces saved by
|
|
\fIblktrace\fR using the \fIbtrecord\fR utility. This will parse
|
|
each trace file created by \fIblktrace\fR, and crafty IO descriptions
|
|
to be used in the next phase of the workload processing.
|
|
|
|
.IP \- 2
|
|
Once \fIbtrecord\fR has successfully created a series of data
|
|
files to be processed, you can run the \fIbtreplay\fR utility which
|
|
attempts to generate the same IOs seen during the sample workload phase.
|
|
|
|
|
|
.SH OPTIONS
|
|
|
|
\-d <\fIdir\fR>
|
|
.br
|
|
\-\-input\-directory=<\fIdir\fR>
|
|
.RS
|
|
Set input directory.
|
|
This option requires a single parameter providing the directory
|
|
name for where input files are to be found. The default directory is the
|
|
current directory (\fI.\fR).
|
|
.RE
|
|
|
|
\-D <\fIdir\fR>
|
|
.br
|
|
\-\-output\-directory=<\fIdir\fR>
|
|
.RS
|
|
Set output directory.
|
|
This option requires a single parameter providing the directory
|
|
name for where output files are to be found. The default directory is the
|
|
current directory (\fI.\fR).
|
|
.RE
|
|
|
|
\-F
|
|
.br
|
|
\-\-find\-traces
|
|
.RS
|
|
Find trace files automatically
|
|
This option instructs \fIbtreplay\fR to go find all the trace files in the
|
|
directory specified (either via the \fI-d\fR option, or in the default
|
|
directory (\fI.\fR).
|
|
.RE
|
|
|
|
\-h
|
|
.br
|
|
\-\-help
|
|
.RS
|
|
Show help and exit.
|
|
.RE
|
|
|
|
\-V
|
|
.br
|
|
\-\-version
|
|
.RS
|
|
Show version number and exit.
|
|
.RE
|
|
|
|
\-m <\fInanoseconds\fR>
|
|
.br
|
|
\-\-max\-bunch\-time=<\fInanoseconds\fR>
|
|
.RS
|
|
The \fI\-m\fR option requires a single parameter which specifies an
|
|
amount of time (in nanoseconds) to include in any one bunch of IOs that
|
|
are to be processed. The smaller the value, the smaller the number of
|
|
IOs processed at one time \(em perhaps yielding in more realistic replay.
|
|
However, after a certain point the amount of overhead per bunch may result
|
|
in additional real replay time, thus yielding less accurate replay times.
|
|
.P
|
|
The default value is 10,000,000 nanoseconds (10 milliseconds).
|
|
.RE
|
|
|
|
\-M <\fInum\fR>
|
|
.br
|
|
\-\-max\-pkts=<\fInum\fR>
|
|
.RS
|
|
Set maximum number of packets per bunch.
|
|
The \fI\-M\fR option requires a single parameter which specifies the
|
|
maximum number of IOs to store in a single bunch. As with the \fI\-m\fR
|
|
option, smaller values may or may not yield more accurate replay times.
|
|
|
|
The default value is 8, with a maximum value of up to 512 being supported.
|
|
.RE
|
|
|
|
\-o <\fIbasename\fR>
|
|
.br
|
|
\-\-output\-base=<\fIbasename\fR>
|
|
.RS
|
|
Set base name for output files.
|
|
Each output file has 3 fields:
|
|
.IP 1. 3
|
|
Device identifier (taken directly from the device name of the
|
|
\fIblktrace\fR output file).
|
|
.IP 2. 3
|
|
\fIbtrecord\fR base name \(em by default ``replay''.
|
|
.IP 3. 3
|
|
The CPU number (again, taken directly from the
|
|
\fIblktrace\fR output file name).
|
|
.P
|
|
This option requires a single parameter that will override the default name
|
|
(replay), and replace it with the specified value.
|
|
.RE
|
|
|
|
\-v
|
|
.br
|
|
\-\-verbose
|
|
.RS
|
|
Enable verbose output.
|
|
This option will output some simple statistics at the end of a successful
|
|
run. Example output is:
|
|
.nf
|
|
.P
|
|
sdab:0: 580661 pkts (tot), 126030 pkts (replay), 89809 bunches, 1.4 pkts/bunch
|
|
sdab:1: 2559775 pkts (tot), 430172 pkts (replay), 293029 bunches, 1.5 pkts/bunch
|
|
sdab:2: 653559 pkts (tot), 136522 pkts (replay), 102288 bunches, 1.3 pkts/bunch
|
|
sdab:3: 474773 pkts (tot), 117849 pkts (replay), 69572 bunches, 1.7 pkts/bunch
|
|
.fi
|
|
.P
|
|
The meaning of the columns is:
|
|
.IP 1. 3
|
|
The first field contains the device name and CPU identifier. Thus:
|
|
\fIsdab:0:\fR means the device \fIsdab\fR and traces on CPU 0.
|
|
.IP 2.
|
|
The second field contains the total number of packets processed for each
|
|
device file.
|
|
.IP 3.
|
|
The next field shows the number of packets eligible for replay.
|
|
.IP 4.
|
|
The fourth field contains the total number of IO bunches.
|
|
.IP 5.
|
|
The last field shows the average number of IOs per bunch recorded.
|
|
.RE
|
|
|
|
|
|
.SH AUTHORS
|
|
\fIbtrecord\fR was written by Alan D. Brunelle. This
|
|
man page was created from the \fIbtreplay\fR documentation by Bas Zoetekouw.
|
|
|
|
|
|
.SH "REPORTING BUGS"
|
|
Report bugs to <linux\-btrace@vger.kernel.org>
|
|
|
|
.SH COPYRIGHT
|
|
Copyright \(co 2007 Alan D. Brunelle, 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 full documentation for btreplay can be found in /usr/share/doc/blktrace on Debian systems.
|
|
.br
|
|
blktrace (8), blkparse (1), btreplay (8)
|
|
|