NAME
     ab - Apache HTTP server benchmarking tool

SYNOPSIS
     ab [ -k ] [ -n requests ] [ -t timelimit ] [ -c  concurrency
     ]  [  -p POST file ] [ -A Authenticate username:password ] [
     -P Proxy Authenticate username:password ] [ -H Custom header
     ]  [ -C Cookie name=value ] [ -T content-type ] [ -v verbos-
     ity ] ] [ -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 on how performant is your current Apache  instal-
     lation.   This  especially  shows  you how much requests per
     time your Apache installation is capable to serve.

OPTIONS
     -k          Enable the HTTP KeepAlive feature, i.e.  perform
                 multiple   requests   within  one  HTTP  session
                 instead. Default is no KeepAlive.

     -n requests Number of requests to perform for the benchmark-
                 ing session.  The default is to just perform one
                 single request which usually leads to  not  very
                 representative benchmarking results.

     -t timelimit
                 Seconds to max.  spend  for  benchmarking.  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 per time to perform.
                 Default is one request per time.

     -p POST file
                 File containing data to POST.

     -A Authorization username:password
                 Supply BASIC Authentification credentials to the
                 server.  The username and password are separated
                 by a single ':' and send on the wire  uuencoded.
                 The  string  is  send  regardless  of wether the
                 server  needs  it;  (i.e.  has  send   an   401.
                 Authentifcation needed).

     -p Proxy-Authorization username:password
                 Supply BASIC Authentification credentials  to  a
                 proxy  en-route.  The  username and password are
                 separated by a single ':' and send on  the  wire
                 uuencoded.   The  string  is  send regardless of
                 wether the proxy needs it; (i.e. has send an 407
                 Proxy authentifcation 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
                 Postfix 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.

     -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)