Find file
Fetching contributors…
Cannot retrieve contributors at this time
180 lines (175 sloc) 6.76 KB
.\" autobench_admin man page - Copyright (2004) Julian T. J. Midgley <>
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 2 of the License, or
.\" (at your option) any later version.
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" GNU General Public License for more details.
.\" You should have received a copy of the GNU General Public License
.\" along with this program; if not, write to the Free Software
.\" Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
.TH AUTOBENCH_ADMIN 1 "May 27, 2004" "" ""
autobench_admin \- admin tool for running HTTP benchmarks using a cluster
of distributed autobench servers
.BR "autobench_admin [OPTIONS]..."
.B autobench_admin
controls a cluster of distributed autobench test servers (each of
which runs \fBautobenchd\fR). When started, it contacts each of
the test servers (specified using \fB--clients\fR, or read from the
configuration file \fB$HOME/.autobench.conf\fR), and instructs them to
run an httperf benchmark against the specified target server. The
results are collated and returned in a TSV or CSV format file.
Distributed autobench is designed to simplify the process of
conducting reliable HTTP benchmarks against web servers. It is often
difficult or impossible to saturate a web server when benchmarking it
from a single test machine. Distributed autobench allows any number
of test machines to be used to conduct synchronised benchmarking of a
target, with automatic collation of the results. A
typical testing setup, with three client machines (running
.B autobenchd\fR)
is illustrated below. Note that
.B autobench_admin
can be run on any machine (typically it will be run on one of the
| autobench_admin |
| | |
| | |
+-----+------+ +-----+------+ +-----+------+
| autobenchd | | autobenchd | | autobenchd |
| testhost1 | | testhost2 | | testhost3 |
+-----+------+ +-----+------+ +-----+------+
| | |
| | |
| web server |
| under test |
To conduct a benchmark using distributed autobench, install the
autobench package on each of the benchmark test machines (i.e. the
machines that will be running httperf, \fInot\fR the machine running
the web server to be benchmarked), and start
.B autobenchd
on each of those machines. By default,
.B autobenchd
will bind to INADDR_ANY, port 4600 (this can be overridden on the
command line, see the
.B autobenchd
(1) man page for details).
Then run autobench_admin to conduct a benchmark, specifying the hostname
and port numbers of all of the benchmark test machines using the
.B --clients
option (or by setting the clients option in the autobench configuration
file \fI$HOME/.autobench.conf\fR). The details of the benchmark are specified with options
identical to those used by
.B autobench\fR.
There is no need to restart the
.B autobenchd
daemons after each benchmarking - they continue to listen for
connections from
.B autobench_admin
In order for distributed autobench to give accurate results, it is
very important that the clocks on all the clients and the machine from
.B autobench_admin
is run are synchronised with one another. The use of NTP is
recommended; in its absence use rdate to synchronise your clocks
before beginning a run.
.B autobench\fR (1) for details of the available benchmark related options. Only
.B autobench_admin
specific options are detailed below.
.B --clients \fIhostname1:port1,hostname2:port2...\fR
Specifies the benchmark test machines to contact. Each hostname
port-number pair must be separated from the next only by a comma. No
spaces are allowed in the clients string. E.g. ``
.B --clients,
.B --debug
Display debugging output
Notice that in each of the examples below, configuration options not
specified on the command line will be taken from the configuration
file (\fB$HOME/.autobench.conf\fR)
autobench_admin --single_host --host1 --uri1 /index.html --clients,, --file bench.tsv
Benchmark from the three machines through using the URI /index.html saving the results in 'bench.tsv'.
autobench_admin --host1 --host2 --uri1 /10k.txt --uri2 /10k.txt --rate_step 50 --low_rate 100 --high_rate 500
Conduct a comparative test of and,
increasing the requested number of connections per second from 100 to
500 by a step of 50 on each iteration. Since no clients are specified
on the command line, those specified in \fI$HOME/.autobench.conf\fR
will be used. Output will go to stdout.
Additional options may be passed to httperf by including them in the
configuration file \fB$HOME/.autobench.conf\fR prefixed with
"httperf_", as in the example below:
httperf_add-header = "Authorization: Basic cm9iOjBjdGFuZQ=="
httperf_print-reply = body
httperf_print-request = header
.I [/usr/local]/etc/autobench.conf
Default configuration file, copied into the user's home directory when
.B autobench
.B autobench_admin
is first run. Defaults to \fI/etc/autobench.conf\fR if
autobench was installed from the Debian package,
\fI/usr/local/etc/autobench.conf\fR otherwise.
.I $HOME/.autobench.conf
The active autobench configuration file.
.\"If zero replies are received for any reason, autobench will print the
.\"message: "Zero replies received, test invalid: rate <r>" to stderr
.\"where <r> will be the rate at which the problem occurred. The output
.\"will also contain an error percentage of 101 for that rate.
.B autobenchd\fR(1),
.B autobench\fR(1),
.B httperf\fR(1),
.B bench2graph\fR(1)
.B The Linux HTTP Benchmarking HOWTO \fRat
has further examples of the use of autobench.
Julian T. J. Midgley <>