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