AUTOBENCH_ADMIN(1)

NAME
autobench_admin - admin tool for running HTTP benchmarks using a cluster of distributed autobench servers

SYNOPSIS
autobench_admin [OPTIONS]...

DESCRIPTION
autobench_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 ALSO
autobenchd(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>