AUTOBENCH_ADMIN(1)AUTOBENCH_ADMIN(1)NAMEautobench_admin - admin tool for running HTTP benchmarks using a clus‐
ter of distributed autobench servers
SYNOPSISautobench_admin [OPTIONS]...
DESCRIPTIONautobench_admin controls a cluster of distributed autobench test
servers (each of which runs autobenchd). When started, it contacts
each of the test servers (specified using --clients, or read from the
configuration file $HOME/.autobench.conf), 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 autobenchd) is illustrated below. Note
that autobench_admin can be run on any machine (typically it will be
run on one of the testhosts).
+-----------------+
| 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, not the machine running the web
server to be benchmarked), and start autobenchd on each of those
machines. By default, autobenchd will bind to INADDR_ANY, port 4600
(this can be overridden on the command line, see the 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 --clients option (or by setting the clients option in the autobench
configuration file $HOME/.autobench.conf). The details of the
benchmark are specified with options identical to those used by
autobench.
There is no need to restart the autobenchd daemons after each
benchmarking - they continue to listen for connections from
autobench_admin indefinitely.
IMPORTANT: In order for distributed autobench to give accurate results,
it is very important that the clocks on all the clients and the machine
from which 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.
OPTIONS
See autobench (1) for details of the available benchmark related
options. Only autobench_admin specific options are detailed below.
--clients hostname1:port1,hostname2:port2...
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. ``
--clients testhost1.foo.com:4600,testhost2.foo.com:4600 ´´
--debug
Display debugging output
EXAMPLES
Notice that in each of the examples below, configuration options not
specified on the command line will be taken from the configuration file
($HOME/.autobench.conf)
autobench_admin--single_host --host1 www.bar.com --uri1 /index.html
--clients test1.foo.com:4600,test2.foo.com:4600,test3.foo.com:4600
--file bench.tsv
Benchmark www.bar.com from the three machines test1.foo.com
through test3.foo.com using the URI /index.html saving the
results in 'bench.tsv'.
autobench_admin--host1 apache.foo.com --host2 zeus.foo.com --uri1
/10k.txt --uri2 /10k.txt --rate_step 50 --low_rate 100 --high_rate 500
Conduct a comparative test of apache.foo.com and zeus.foo.com,
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
$HOME/.autobench.conf will be used. Output will go to stdout.
ADDITIONAL HTTPERF OPTIONS
Additional options may be passed to httperf by including them in the
configuration file $HOME/.autobench.conf prefixed with "httperf_", as
in the example below:
httperf_add-header = "Authorization: Basic cm9iOjBjdGFuZQ=="
httperf_print-reply = body
httperf_print-request = header
FILES
[/usr/local]/etc/autobench.conf
Default configuration file, copied into the user's home
directory when autobench or autobench_admin is first run.
Defaults to /etc/autobench.conf if autobench was installed from
the Debian package, /usr/local/etc/autobench.conf otherwise.
$HOME/.autobench.conf
The active autobench configuration file.
SEE ALSOautobenchd(1), autobench(1), httperf(1), bench2graph(1)
The Linux HTTP Benchmarking HOWTO at
http://www.xenoclast.org/doc/benchmark/
has further examples of the use of autobench.
AUTHOR
Julian T. J. Midgley <jtjm@xenoclast.org>
May 27, 2004 AUTOBENCH_ADMIN(1)