Apache HTTP Server Version 2.0
This document refers to the 2.0 version of Apache httpd, which is no longer maintained. Upgrade, and refer to the current version of httpd instead, documented at:
You may follow this link to go to the current version of this document.
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
[ -A auth-username:password ]
[ -c concurrency ]
[ -C cookie-name=value ]
[ -d ]
[ -e csv-file ]
[ -g gnuplot-file ]
[ -h ]
[ -H custom-header ]
[ -i ]
[ -k ]
[ -n requests ]
[ -p POST-file ]
[ -P proxy-auth-username:password ]
[ -q ]
[ -s ]
[ -S ]
[ -t timelimit ]
[ -T content-type ]
[ -v verbosity]
[ -V ]
[ -w ]
[ -x <table>-attributes ]
[ -X proxy[:port] ]
[ -y <tr>-attributes ]
[ -z <td>-attributes ]
:and sent on the wire base64 encoded. The string is sent regardless of whether the server needs it (i.e., has sent an 401 authentication needed).
Cookie:line to the request. The argument is typically in the form of a
name=valuepair. This field is repeatable.
HEADrequests instead of
:and sent on the wire base64 encoded. The string is sent regardless of whether the proxy needs it (i.e., has sent an 407 proxy authentication needed).
aboutputs a progress count on
stderrevery 10% or 100 requests or so. The
-qflag will suppress these messages.
ab -hwill show you) use the SSL protected
httpsrather than the
httpprotocol. This feature is experimental and very rudimentary. You probably do not want to use it.
-n 50000internally. Use this to benchmark the server within a fixed total amount of time. Per default there is no timelimit.
4and above prints information on headers,
3and above prints response codes (404, 200, etc.),
2and above prints warnings and info.
<table>. Attributes are inserted
<table here >.
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 performance rather than the server's.