.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
.\" DO NOT EDIT! Generated from XML source.
.\" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
.de Sh \" Subsection
.br
.if t .Sp
.ne 5
.PP
\fB\\$1\fR
.PP
..
.de Sp \" Vertical space (when we can't use .PP)
.if t .sp .5v
.if n .sp
..
.de Ip \" List item
.br
.ie \\n(.$>=3 .ne \\$3
.el .ne 3
.IP "\\$1" \\$2
..
.TH "AB" 1 "2015-05-26" "Apache HTTP Server" "ab"

.SH NAME
ab \- Apache HTTP server benchmarking tool

.SH "SYNOPSIS"
 
.PP
\fBab\fR [ -\fBA\fR \fIauth-username\fR:\fIpassword\fR ] [ -\fBb\fR \fIwindowsize\fR ] [ -\fBB\fR \fIlocal-address\fR ] [ -\fBc\fR \fIconcurrency\fR ] [ -\fBC\fR \fIcookie-name\fR=\fIvalue\fR ] [ -\fBd\fR ] [ -\fBe\fR \fIcsv-file\fR ] [ -\fBf\fR \fIprotocol\fR ] [ -\fBg\fR \fIgnuplot-file\fR ] [ -\fBh\fR ] [ -\fBH\fR \fIcustom-header\fR ] [ -\fBi\fR ] [ -\fBk\fR ] [ -\fBl\fR ] [ -\fBm\fR \fIHTTP-method\fR ] [ -\fBn\fR \fIrequests\fR ] [ -\fBp\fR \fIPOST-file\fR ] [ -\fBP\fR \fIproxy-auth-username\fR:\fIpassword\fR ] [ -\fBq\fR ] [ -\fBr\fR ] [ -\fBs\fR \fItimeout\fR ] [ -\fBS\fR ] [ -\fBt\fR \fItimelimit\fR ] [ -\fBT\fR \fIcontent-type\fR ] [ -\fBu\fR \fIPUT-file\fR ] [ -\fBv\fR \fIverbosity\fR] [ -\fBV\fR ] [ -\fBw\fR ] [ -\fBx\fR \fI<table>-attributes\fR ] [ -\fBX\fR \fIproxy\fR[:\fIport\fR] ] [ -\fBy\fR \fI<tr>-attributes\fR ] [ -\fBz\fR \fI<td>-attributes\fR ] [ -\fBZ\fR \fIciphersuite\fR ] [http[s]://]\fIhostname\fR[:\fIport\fR]/\fIpath\fR
 

.SH "SUMMARY"
 
.PP
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\&.
 

.SH "OPTIONS"
 
 
.TP
-A \fIauth-username\fR:\fIpassword\fR
Supply BASIC Authentication credentials to the server\&. The username and password are separated by a single : and sent on the wire base64 encoded\&. The string is sent regardless of whether the server needs it (\fIi\&.e\&.\fR, has sent an 401 authentication needed)\&.  
.TP
-b \fIwindowsize\fR
Size of TCP send/receive buffer, in bytes\&.  
.TP
-B \fIlocal-address\fR
Address to bind to when making outgoing connections\&.  
.TP
-c \fIconcurrency\fR
Number of multiple requests to perform at a time\&. Default is one request at a time\&.  
.TP
-C \fIcookie-name\fR=\fIvalue\fR
Add a Cookie: line to the request\&. The argument is typically in the form of a \fIname\fR=\fIvalue\fR pair\&. This field is repeatable\&.  
.TP
-d
Do not display the "percentage served within XX [ms] table"\&. (legacy support)\&.  
.TP
-e \fIcsv-file\fR
Write a Comma separated value (CSV) file which contains for each percentage (from 1% to 100%) the time (in milliseconds) it took to serve that percentage of the requests\&. This is usually more useful than the 'gnuplot' file; as the results are already 'binned'\&.  
.TP
-f \fIprotocol\fR
Specify SSL/TLS protocol (SSL2, SSL3, TLS1, TLS1\&.1, TLS1\&.2, or ALL)\&. TLS1\&.1 and TLS1\&.2 support available in 2\&.4\&.4 and later\&.  
.TP
-g \fIgnuplot-file\fR
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, Mathematica, Igor or even Excel\&. The labels are on the first line of the file\&.  
.TP
-h
Display usage information\&.  
.TP
-H \fIcustom-header\fR
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 (\fIi\&.e\&.\fR, "Accept-Encoding: zip/zop;8bit")\&.  
.TP
-i
Do HEAD requests instead of GET\&.  
.TP
-k
Enable the HTTP KeepAlive feature, \fIi\&.e\&.\fR, perform multiple requests within one HTTP session\&. Default is no KeepAlive\&.  
.TP
-l
Do not report errors if the length of the responses is not constant\&. This can be useful for dynamic pages\&. Available in 2\&.4\&.7 and later\&.  
.TP
-m \fIHTTP-method\fR
Custom HTTP method for the requests\&. Available in 2\&.4\&.10 and later\&.  
.TP
-n \fIrequests\fR
Number of requests to perform for the benchmarking session\&. The default is to just perform a single request which usually leads to non-representative benchmarking results\&.  
.TP
-p \fIPOST-file\fR
File containing data to POST\&. Remember to also set -T\&.  
.TP
-P \fIproxy-auth-username\fR:\fIpassword\fR
Supply BASIC Authentication credentials to a proxy en-route\&. The username and password are separated by a single : and sent on the wire base64 encoded\&. The string is sent regardless of whether the proxy needs it (\fIi\&.e\&.\fR, has sent an 407 proxy authentication needed)\&.  
.TP
-q
When processing more than 150 requests, ab outputs a progress count on stderr every 10% or 100 requests or so\&. The -q flag will suppress these messages\&.  
.TP
-r
Don't exit on socket receive errors\&.  
.TP
-s \fItimeout\fR
Maximum number of seconds to wait before the socket times out\&. Default is 30 seconds\&. Available in 2\&.4\&.4 and later\&.  
.TP
-S
Do not display the median and standard deviation values, nor display the warning/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)\&.  
.TP
-t \fItimelimit\fR
Maximum number of seconds to 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\&.  
.TP
-T \fIcontent-type\fR
Content-type header to use for POST/PUT data, eg\&. application/x-www-form-urlencoded\&. Default is text/plain\&.  
.TP
-u \fIPUT-file\fR
File containing data to PUT\&. Remember to also set -T\&.  
.TP
-v \fIverbosity\fR
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\&.  
.TP
-V
Display version number and exit\&.  
.TP
-w
Print out results in HTML tables\&. Default table is two columns wide, with a white background\&.  
.TP
-x \fI<table>-attributes\fR
String to use as attributes for <table>\&. Attributes are inserted <table \fIhere\fR >\&.  
.TP
-X \fIproxy\fR[:\fIport\fR]
Use a proxy server for the requests\&.  
.TP
-y \fI<tr>-attributes\fR
String to use as attributes for <tr>\&.  
.TP
-z \fI<td>-attributes\fR
String to use as attributes for <td>\&.  
.TP
-Z \fIciphersuite\fR
Specify SSL/TLS cipher suite (See openssl ciphers)  
 
.SH "OUTPUT"
 
.PP
The following list describes the values returned by ab:
 
 
.TP
Server Software
The value, if any, returned in the \fIserver\fR HTTP header of the first successful response\&. This includes all characters in the header from beginning to the point a character with decimal value of 32 (most notably: a space or CR/LF) is detected\&.  
.TP
Server Hostname
The DNS or IP address given on the command line  
.TP
Server Port
The port to which ab is connecting\&. If no port is given on the command line, this will default to 80 for http and 443 for https\&.  
.TP
SSL/TLS Protocol
The protocol parameters negotiated between the client and server\&. This will only be printed if SSL is used\&.  
.TP
Document Path
The request URI parsed from the command line string\&.  
.TP
Document Length
This is the size in bytes of the first successfully returned document\&. If the document length changes during testing, the response is considered an error\&.  
.TP
Concurrency Level
The number of concurrent clients used during the test  
.TP
Time taken for tests
This is the time taken from the moment the first socket connection is created to the moment the last response is received  
.TP
Complete requests
The number of successful responses received  
.TP
Failed requests
The number of requests that were considered a failure\&. If the number is greater than zero, another line will be printed showing the number of requests that failed due to connecting, reading, incorrect content length, or exceptions\&.  
.TP
Write errors
The number of errors that failed during write (broken pipe)\&.  
.TP
Non-2xx responses
The number of responses that were not in the 200 series of response codes\&. If all responses were 200, this field is not printed\&.  
.TP
Keep-Alive requests
The number of connections that resulted in Keep-Alive requests  
.TP
Total body sent
If configured to send data as part of the test, this is the total number of bytes sent during the tests\&. This field is omitted if the test did not include a body to send\&.  
.TP
Total transferred
The total number of bytes received from the server\&. This number is essentially the number of bytes sent over the wire\&.  
.TP
HTML transferred
The total number of document bytes received from the server\&. This number excludes bytes received in HTTP headers  
.TP
Requests per second
This is the number of requests per second\&. This value is the result of dividing the number of requests by the total time taken  
.TP
Time per request
The average time spent per request\&. The first value is calculated with the formula concurrency * timetaken * 1000 / done while the second value is calculated with the formula timetaken * 1000 / done  
.TP
Transfer rate
The rate of transfer as calculated by the formula totalread / 1024 / timetaken  
 
.SH "BUGS"
 
.PP
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\&.
 
.PP
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; \fIi\&.e\&.\fR, you would measure the ab performance rather than the server's\&.
 
