Manual Page: ab
NAME
ab - Apache HTTP server benchmarking tool
SYNOPSIS
ab [ -k ] [ -n requests ] [ -t timelimit ] [ -c concurrency
] [ -p POST file ] [ -A Authentication username:password ] [
-P Proxy Authentication username:password ] [ -H Custom
header ] [ -C Cookie name=value ] [ -T content-type ] [ -v
verbosity ] ] [ -w output HTML ] ] [ -x <table> attributes ]
] [ -y <tr> attributes ] ] [ -z <td> attributes ]
[http://]hostname[:port]/path
ab [ -V ] [ -h ]
DESCRIPTION
ab is a tool for benchmarking your Apache HyperText Transfer
Protocol (HTTP) server. It is designed to give you an
impression of how your current Apache installation performs.
This especially shows you how many requests per second your
Apache installation is capable of serving.
OPTIONS
-k Enable the HTTP KeepAlive feature, i.e., perform
multiple requests within one HTTP session.
Default is no KeepAlive.
-n requests Number of requests to perform for the benchmark-
ing session. The default is to just perform a
single request which usually leads to non-
representative benchmarking results.
-t timelimit
Maximum number of seconds to spend for bench-
marking. This implies a -n 50000 internally. Use
this to benchmark the server within a fixed
total amount of time. Per default there is no
timelimit.
-c concurrency
Number of multiple requests to perform at a
time. Default is one request at a time.
-p POST file
File containing data to POST.
-A Authentication username:password
Supply BASIC Authentication credentials to the
server. The username and password are separated
by a single ':' and sent on the wire uuencoded.
The string is sent regardless of whether the
server needs it; (i.e., has sent an 401 authen-
tication needed).
-p Proxy-Authentication username:password
Supply BASIC Authentication credentials to a
proxy en-route. The username and password are
separated by a single ':' and sent on the wire
uuencoded. The string is sent regardless of
whether the proxy needs it; (i.e., has sent an
407 proxy authentication needed).
-C Cookie name=value
Add a 'Cookie:' line to the request. The argu-
ment is typically in the form of a 'name=value'
pair. This field is repeatable.
-p Header string
Append extra headers to the request. The argu-
ment is typically in the form of a valid header
line, containing a colon-separated field-value
pair. (i.e., 'Accept-Encoding: zip/zop;8bit').
-T content-type
Content-type header to use for POST data.
-v Set verbosity level - 4 and above prints infor-
mation on headers, 3 and above prints response
codes (404, 200, etc.), 2 and above prints warn-
ings and info.
-w Print out results in HTML tables. Default table
is two columns wide, with a white background.
-x attributes
String to use as attributes for <table>. Attri-
butes are inserted <table here >
-y attributes
String to use as attributes for <tr>.
-z attributes
String to use as attributes for <td>.
-V Display version number and exit.
-h Display usage information.
BUGS
There are various statically declared buffers of fixed
length. Combined with the lazy parsing of the command line
arguments, the response headers from the server and other
external inputs, this might bite you.
It does not implement HTTP/1.x fully; only accepts some
'expected' forms of responses. The rather heavy use of
strstr(3) shows up top in profile, which might indicate a
performance problem; i.e., you would measure the ab perfor-
mance rather than the server's.
SEE ALSO
httpd(8)