blob: eda63058922d3d0b44ed643e35c99a8d8d6133c9 [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" -->
<h1 align="center">Manual Page: ab</h1>
<!-- 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>Authentication username</em>:<em>password </em>] [
-<strong>P </strong><em>Proxy Authentication username</em>:<em>password </em>] [ -<strong>H </strong><em>Custom</em>
<em>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>verbosity </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 of how your current Apache installation performs.
This especially shows you how many requests per second your
Apache installation is capable of serving.
<strong>OPTIONS</strong>
-<strong>k </strong>Enable the HTTP KeepAlive feature, i.e., perform
multiple requests within one HTTP session.
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 a
single request which usually leads to non-
representative benchmarking results.
-<strong>t </strong><em>timelimit</em>
Maximum number of seconds to spend for bench-
marking. 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 to perform at a
time. Default is one request at a time.
-<strong>p </strong><em>POST file</em>
File containing data to POST.
-<strong>A </strong><em>Authentication username</em>:<em>password</em>
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).
-<strong>p </strong><em>Proxy</em>-<em>Authentication username</em>:<em>password</em>
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).
-<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>
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').
-<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>