    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)