👤
Home Man
Search
Today's Posts
Register

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:
Select Section of Man Page:
Select Man Page Repository:

RedHat 9 (Linux i386) - man page for ab (redhat section 1)

ab(1)											    ab(1)

NAME
       ab - Apache HTTP server benchmarking tool

SYNOPSIS
       ab  [  -k  ] [ -e ] [ -q ] [ -S ] [ -i ] [ + .B -s ] [ -n requests ] [ -t timelimit ] [ -c
       concurrency ] [ -p POST file ] [ -A Authentication username:password ] [ -P Proxy  Authen-
       tication  username:password  ] [ -H Custom header ] [ -C Cookie name=value ] [ -T content-
       type ] [ -X proxy [ :port ] ] [ -v verbosity ] ] [ -w output HTML ] ] [ -g output  GNUPLOT
       ]  ]  [	-e  output CSV ] ] [ -x <table> attributes ] ] [ -y <tr> attributes ] ] [ -z <td>
       attributes ] [http[s]://]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 benchmarking session.	The default is to
		   just perform a single request which usually leads to non-representative bench-
		   marking results.

       -t timelimit
		   Maximum number of seconds to spend for benchmarking. This implies  -d  Do  not
		   display the "percentage served within XX [ms] table". (legacy support).

       -S	   Do not display the median and standard deviation values, nor display the warn-
		   ing/error messages when the average and median are more than one or two  times
		   the	standard  deviation apart. And default to the min/avg/max values. (legacy
		   support).

       -s	   When compiled in (bb -h will show you) use the SSL protected https rather than
		   the	http  protocol.  This  feature	is experimental and very rudimentary. You
		   propably do not want to use it.

       -k	   Enable the HTTP KeepAlive feature; that is, perform multiple  requests  within
		   one HTTP session. Default is no KeepAlive.  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  pass-
		   word 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
		   authentication needed).

       -X proxy[:port]
		   Route all requests through the proxy (at optional port).

       -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 argument is typically in the form  of
		   a 'name=value' pair. This field is repeatable.

       -p Header string
		   Append  extra headers to the request. The argument 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.

       -g gnuplot file
		   Write  all  measured  values  out  as a 'gnuplot' or TSV (Tab separate values)
		   file. This file can easily be imported into packages like Gnuplot, IDL, Mathe-
		   matica, Igor or even Excell. The labels are on the first line of the file.

       -q	   When  processing  more than 150 requsts; ab outputs a progress count on stderr
		   every 10% or 100 requests or so. The -q flag qill suppress these messages.

       -e CSV file Write a Comma separated value (CSV) file which contains  for  each  percentage
		   (from 1% to 100%) the time (in milli seconds) it took to serve that percentage
		   of the requests. This is usually more usefull than the 'gnuplot' file; as  the
		   results are already

       -v	   Set	verbosity  level - 4 and above prints information on headers, 3 and above
		   prints response codes (404, 200, etc.), 2 and above prints warnings 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>.  Attributes 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 performance rather than the server's.

SEE ALSO
       httpd(8)

       The HTML output is not as complete as the text output.

       Up to version 1.3d ab has propably reported values way to low for most measurements; as	a
       single  timeout (which is usually in the order of seconds) will shift several thousands of
       milli-second responses by a considerable factor. This was further componded by  a  serious
       interger  overrun  which  would for realistic run's (i.e. those longer than a few minutes)
       produce believable but totally bogus results. Thanks to Sander Temme <sander@covalent.net>
       for solving this riddle.

					    March 2000					    ab(1)


All times are GMT -4. The time now is 09:53 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
×
UNIX.COM Login
Username:
Password:  
Show Password