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)