blob: 5cc22202d01260fce8591b7b1177f42c9e4b8c5b [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML><HEAD><TITLE>Manual Page: ab - Apache HTTP Server</TITLE></HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF"
VLINK="#000080" ALINK="#FF0000">
<!--#include virtual="header.html" -->
<!-- This document was autogenerated from the man page -->
<pre>
<strong>NAME</strong>
ab - Apache HTTP server benchmarking tool
<strong>SYNOPSIS</strong>
<strong>ab </strong>[ -<strong>k </strong>] [ -<strong>n </strong><em>requests </em>] [ -<strong>t </strong><em>timelimit </em>] [ -<strong>c </strong><em>concurrency</em>
] [ -<strong>p </strong><em>POST file </em>] [ -<strong>A </strong><em>Authenticate username</em>:<em>password </em>] [
-<strong>P </strong><em>Proxy Authenticate username</em>:<em>password </em>] [ -<strong>H </strong><em>Custom header</em>
] [ -<strong>C </strong><em>Cookie name</em>=<em>value </em>] [ -<strong>T </strong><em>content</em>-<em>type </em>] [ -<strong>v </strong><em>verbos-</em>
<em>ity </em>] ] [ -<strong>w </strong><em>output HTML </em>] ] [ -<strong>x </strong>&lt;<em>table</em>&gt; <em>attributes </em>] ] [
-<strong>y </strong>&lt;<em>tr</em>&gt; <em>attributes </em>] ] [ -<strong>z </strong>&lt;<em>td</em>&gt; <em>attributes </em>]
[<em>http</em>://]<em>hostname</em>[:<em>port</em>]/<em>path</em>
<strong>ab </strong>[ -<strong>V </strong>] [ -<strong>h </strong>]
<strong>DESCRIPTION</strong>
<strong>ab </strong>is a tool for benchmarking your Apache HyperText Transfer
Protocol (HTTP) server. It is designed to give you an
impression on how performant is your current Apache instal-
lation. This especially shows you how much requests per
time your Apache installation is capable to serve.
<strong>OPTIONS</strong>
-<strong>k </strong>Enable the HTTP KeepAlive feature, i.e. perform
multiple requests within one HTTP session
instead. Default is no KeepAlive.
-<strong>n </strong><em>requests </em>Number of requests to perform for the benchmark-
ing session. The default is to just perform one
single request which usually leads to not very
representative benchmarking results.
-<strong>t </strong><em>timelimit</em>
Seconds to max. spend for benchmarking. This
implies a -<strong>n 50000 </strong>internally. Use this to
benchmark the server within a fixed total amount
of time. Per default there is no timelimit.
-<strong>c </strong><em>concurrency</em>
Number of multiple requests per time to perform.
Default is one request per time.
-<strong>p </strong><em>POST file</em>
File containing data to POST.
-<strong>A </strong><em>Authorization username</em>:<em>password</em>
Supply BASIC Authentification credentials to the
server. The username and password are separated
by a single ':' and send on the wire uuencoded.
The string is send regardless of wether the
server needs it; (i.e. has send an 401.
Authentifcation needed).
-<strong>p </strong><em>Proxy</em>-<em>Authorization username</em>:<em>password</em>
Supply BASIC Authentification credentials to a
proxy en-route. The username and password are
separated by a single ':' and send on the wire
uuencoded. The string is send regardless of
wether the proxy needs it; (i.e. has send an 407
Proxy authentifcation needed).
-<strong>C </strong><em>Cookie name</em>=<em>value</em>
Add a 'Cookie:' line to the request. The argu-
ment is typically in the form of a 'name=value'
pair. This field is repeatable.
-<strong>p </strong><em>Header string</em>
Postfix 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.
-<strong>T </strong><em>content</em>-<em>type</em>
Content-type header to use for POST data.
-<strong>v </strong>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.
-<strong>w </strong>Print out results in HTML tables. Default table
is two columns wide, with a white background.
-<strong>x </strong><em>attributes</em>
String to use as attributes for &lt;table&gt;. Attri-
butes are inserted &lt;table <strong>here </strong>&gt;
-<strong>y </strong><em>attributes</em>
String to use as attributes for &lt;tr&gt;.
-<strong>z </strong><em>attributes</em>
String to use as attributes for &lt;td&gt;.
-<strong>V </strong>Display version number and exit.
-<strong>h </strong>Display usage information.
<strong>BUGS</strong>
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
<strong>strstr(3) </strong>shows up top in profile, which might indicate a
performance problem; i.e. you would measure the <strong>ab </strong>perfor-
mance rather than the server's.
<strong>SEE ALSO</strong>
<strong>httpd(8)</strong>
</pre>
<!--#include virtual="footer.html" -->
</BODY></HTML>