| .TH ab 1 "March 2000" |
| .\" The Apache Software License, Version 1.1 |
| .\" |
| .\" Copyright (c) 2000 The Apache Software Foundation. All rights |
| .\" reserved. |
| .\" |
| .\" Redistribution and use in source and binary forms, with or without |
| .\" modification, are permitted provided that the following conditions |
| .\" are met: |
| .\" |
| .\" 1. Redistributions of source code must retain the above copyright |
| .\" notice, this list of conditions and the following disclaimer. |
| .\" |
| .\" 2. Redistributions in binary form must reproduce the above copyright |
| .\" notice, this list of conditions and the following disclaimer in |
| .\" the documentation and/or other materials provided with the |
| .\" distribution. |
| .\" |
| .\" 3. The end-user documentation included with the redistribution, |
| .\" if any, must include the following acknowledgment: |
| .\" "This product includes software developed by the |
| .\" Apache Software Foundation (http://www.apache.org/)." |
| .\" Alternately, this acknowledgment may appear in the software itself, |
| .\" if and wherever such third-party acknowledgments normally appear. |
| .\" |
| .\" 4. The names "Apache" and "Apache Software Foundation" must |
| .\" not be used to endorse or promote products derived from this |
| .\" software without prior written permission. For written |
| .\" permission, please contact apache@apache.org. |
| .\" |
| .\" 5. Products derived from this software may not be called "Apache", |
| .\" nor may "Apache" appear in their name, without prior written |
| .\" permission of the Apache Software Foundation. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
| .\" WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
| .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| .\" DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR |
| .\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| .\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| .\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
| .\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| .\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
| .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| .\" SUCH DAMAGE. |
| .\" |
| .\" This software consists of voluntary contributions made by many |
| .\" individuals on behalf of the Apache Software Foundation. For more |
| .\" information on the Apache Software Foundation, please see |
| .\" <http://www.apache.org/>. |
| .\" |
| .SH NAME |
| ab \- Apache HTTP server benchmarking tool |
| .SH SYNOPSIS |
| .B ab |
| [ |
| .B \-k |
| ] [ |
| .BI \-n " requests" |
| ] [ |
| .BI \-t " timelimit" |
| ] [ |
| .BI \-c " concurrency" |
| ] [ |
| .BI \-p " POST file" |
| ] [ |
| .BI \-A " Authenticate username:password" |
| ] [ |
| .BI \-P " Proxy Authenticate username:password" |
| ] [ |
| .BI \-H " Custom header" |
| ] [ |
| .BI \-C " Cookie name=value" |
| ] [ |
| .BI \-T " content-type" |
| ] [ |
| .BI \-v " verbosity" |
| ] |
| ] [ |
| .BI \-w " output HTML" |
| ] |
| ] [ |
| .BI \-x " <table> attributes" |
| ] |
| ] [ |
| .BI \-y " <tr> attributes" |
| ] |
| ] [ |
| .BI \-z " <td> attributes" |
| ] |
| .I [http://]hostname[:port]/path |
| |
| .B ab |
| [ |
| .B \-V |
| ] [ |
| .B \-h |
| ] |
| .PP |
| .SH DESCRIPTION |
| .B ab |
| 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 installation. This especially shows you how much requests per |
| time your Apache installation is capable to serve. |
| .PP |
| .SH OPTIONS |
| .TP 12 |
| .B \-k |
| Enable the HTTP KeepAlive feature, i.e. perform multiple requests within one |
| HTTP session instead. Default is no KeepAlive. |
| .TP 12 |
| .BI \-n " requests" |
| Number of requests to perform for the benchmarking session. The default is to |
| just perform one single request which usually leads to not very representative |
| benchmarking results. |
| .TP 12 |
| .BI \-t " timelimit" |
| Seconds to max. spend for benchmarking. This implies |
| a |
| .B \-n |
| .B 50000 |
| internally. Use this to benchmark the server within a fixed total amount of |
| time. Per default there is no timelimit. |
| .TP 12 |
| .BI \-c " concurrency" |
| Number of multiple requests per time to perform. |
| Default is one request per time. |
| |
| .TP 12 |
| .BI \-p " POST file" |
| File containing data to POST. |
| |
| .TP 12 |
| .BI \-A " Authorization username:password" |
| 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). |
| |
| .TP 12 |
| .BI \-p " Proxy-Authorization username:password" |
| 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). |
| |
| .TP 12 |
| .BI \-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. |
| |
| .TP 12 |
| .BI \-p " Header string" |
| Postfix 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'). |
| |
| .TP 12 |
| .BI \-T " content-type" |
| Content-type header to use for POST data. |
| |
| .TP 12 |
| .B \-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. |
| |
| .TP 12 |
| .BI \-w |
| Print out results in HTML tables. Default table is two columns wide, |
| with a white background. |
| .TP 12 |
| .BI \-x " attributes" |
| String to use as attributes for <table>. Attributes are inserted |
| <table |
| .B here |
| > |
| .TP 12 |
| .BI \-y " attributes" |
| String to use as attributes for <tr>. |
| .TP 12 |
| .BI \-z " attributes" |
| String to use as attributes for <td>. |
| .TP 12 |
| .B \-V |
| Display version number and exit. |
| .TP 12 |
| .B \-h |
| Display usage information. |
| .PD |
| .SH 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. |
| .P |
| It does not implement HTTP/1.x fully; only accepts some 'expected' forms |
| of responses. The rather heavy use of |
| .BR strstr(3) |
| shows up top in profile, |
| which might indicate a performance problem; i.e. you would measure the |
| .BR ab |
| performance rather than the server's. |
| |
| .SH SEE ALSO |
| .BR httpd(8) |
| . |