# Manual Page: ab

    NAME
         ab - Apache HTTP server benchmarking tool

    SYNOPSIS
         ab [ -k ] [ -i ] [ -n requests ] [ -t timelimit ] [ -c  con-
         currency   ]   [   -p   POST   file   ]  [  -A  Authenticate
         username:password    ]    [    -P     Proxy     Authenticate
         username:password  ]  [  -H  Custom  header  ]  [  -C Cookie
         name=value ] [ -T content-type ] [ -v verbosity  ]  [  -w
         output HTML ] [ -x <table> attributes ] [ -X proxy[:port] ]
         [ -y <tr> attributes     ]   [     -z  <td>  attributes   ]
         [http://]hostname[:port]/path

         ab [ -V ] [ -h ]

    DESCRIPTION
         ab is a tool for benchmarking the performance of your Apache
         HyperText  Transfer Protocol (HTTP) server.  It does this by
         giving you an indication of how  many  requests  per  second
         your Apache installation can serve.

    OPTIONS
         -k          Enable the HTTP KeepAlive feature; that is, per-
                     form  multiple requests within one HTTP session.
                     Default is no KeepAlive.

         -i          Use an HTTP 'HEAD' instead of  the  GET  method.
                     Cannot be mixed with POST.

         -n requests The number of requests to perform for the bench-
                     marking session.  The default is to perform just
                     one  single  request,  which   will   not   give
                     representative benchmarking results.

         -t timelimit
                     The number of  seconds  to  spend  benchmarking.
                     Using  this  option automatically set the number
                     of requests  for  the  benchmarking  session  to
                     50000.   Use  this to benchmark the server for a
                     fixed period of time.  By default, there  is  no
                     timelimit.

         -c concurrency
                     The number of simultaneous requests to  perform.
                     The default is to perform one HTTP request at a
                     time, that is, no concurrency.

         -p POST file
                     A file containing data  that  the  program  will
                     send  to  the  Apache  server  in  any HTTP POST
                     requests. The contents of the file  should  look
                     like  name=value&something=other,  with  special
                     characters URL encoded.

         -A Authorization username:password
                     Supply Basic Authentication credentials  to  the
                     server.  The username and password are separated
                     by a single ':', and  sent  as  uuencoded  data.
                     The  string  is  sent  regardless of whether the
                     server needs it; that is, has sent a 401 Authen-
                     tication needed.

         -P Proxy-Authorization username:password
                     Supply Basic  Authentication  credentials  to  a
                     proxy  en-route.  The  username and password are
                     separated by a single ':', and sent as uuencoded
                     data.   The string is sent regardless of whether
                     the proxy needs it; that  is,  has  sent  a  407
                     Proxy authentication needed.

         -C Cookie name=value
                     Add a 'Cookie:' line to the request.  The  argu-
                     ment  is  typically  a  'name=value'  pair. This
                     option may be repeated.

         -H Header string
                     Append extra headers to the request.  The  argu-
                     ment  is typically in the form of a valid header
                     line, usually  a  colon  separated  field  value
                     pair,     for     example,     'Accept-Encoding:
                     zip/zop;8bit'.

         -T content-type
                     The content-type header to use for POST data.

         -v          Sets the verbosity level.   Level  4  and  above
                     prints information on headers, level 3 and above
                     prints response codes (for example,  404,  200),
                     and level 2 and above prints warnings and infor-
                     mational messages.

         -w          Print out results in HTML tables.   The  default
                     table  is  two  columns wide, with a white back-
                     ground.

         -x attributes
                     The string to use  as  attributes  for  <table>.
                     Attributes are inserted <table here >

         -X proxy:port
                     Use the specified proxy server, running on the
                     specified port.

         -y attributes
                     The string to use as attributes for <tr>.

         -z attributes
                     The string to use as attributes for <td>.

         -V          Display the version number and exit.

         -h          Display usage information.

    BUGS
         There are  various  statically  declared  buffers  of  fixed
         length.  Combined  with  inefficient  parsing of the command
         line arguments, the response headers from  the  server,  and
         other external inputs, these buffers might overflow.

         Ab does not  implement  HTTP/1.x  fully;  instead,  it  only
         accepts some 'expected' forms of responses.

         The rather heavy use of strstr(3) by the  program  may  skew
         performance   results,   since   it   uses  significant  CPU
         resources.  Make sure that performance limits are not hit by
         ab before your server's limit is reached.

    SEE ALSO
         httpd(8)