<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>ab - Apache HTTP server benchmarking tool - Apache HTTP Server</title>
<link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
<link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
<link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" />
<link href="../images/favicon.ico" rel="shortcut icon" /></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p>
<p class="apache">Apache HTTP Server Version 2.3</p>
<img alt="" src="../images/feather.gif" /></div>
<div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="../images/left.gif" /></a></div>
<div id="path">
<a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Server</a> &gt; <a href="http://httpd.apache.org/docs/">Documentation</a> &gt; <a href="../">Version 2.3</a> &gt; <a href="./">Programs</a></div><div id="page-content"><div id="preamble"><h1>ab - Apache HTTP server benchmarking tool</h1>
<div class="toplang">
<p><span>Available Languages: </span><a href="../en/programs/ab.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../ko/programs/ab.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div>

    <p><code>ab</code> 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.</p>
</div>
<div id="quickview"><ul id="toc"><li><img alt="" src="../images/down.gif" /> <a href="#synopsis">Synopsis</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#options">Options</a></li>
<li><img alt="" src="../images/down.gif" /> <a href="#bugs">Bugs</a></li>
</ul><h3>See also</h3><ul class="seealso"><li><code class="program"><a href="../programs/httpd.html">httpd</a></code></li></ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="synopsis" id="synopsis">Synopsis</a></h2>
    <p><code><strong>ab</strong>
    [ -<strong>A</strong> <var>auth-username</var>:<var>password</var> ]
    [ -<strong>c</strong> <var>concurrency</var> ]
    [ -<strong>C</strong> <var>cookie-name</var>=<var>value</var> ]
    [ -<strong>d</strong> ]
    [ -<strong>e</strong> <var>csv-file</var> ]
    [ -<strong>g</strong> <var>gnuplot-file</var> ]
    [ -<strong>h</strong> ]
    [ -<strong>H</strong> <var>custom-header</var> ]
    [ -<strong>i</strong> ]
    [ -<strong>k</strong> ]
    [ -<strong>n</strong> <var>requests</var> ]
    [ -<strong>p</strong> <var>POST-file</var> ]
    [ -<strong>P</strong> <var>proxy-auth-username</var>:<var>password</var> ]
    [ -<strong>q</strong> ]
    [ -<strong>s</strong> ]
    [ -<strong>S</strong> ]
    [ -<strong>t</strong> <var>timelimit</var> ]
    [ -<strong>T</strong> <var>content-type</var> ]
    [ -<strong>v</strong> <var>verbosity</var>]
    [ -<strong>V</strong> ]
    [ -<strong>w</strong> ]
    [ -<strong>x</strong> <var>&lt;table&gt;-attributes</var> ]
    [ -<strong>X</strong> <var>proxy</var>[:<var>port</var>] ]
    [ -<strong>y</strong> <var>&lt;tr&gt;-attributes</var> ]
    [ -<strong>z</strong> <var>&lt;td&gt;-attributes</var> ]
    [http://]<var>hostname</var>[:<var>port</var>]/<var>path</var></code></p>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="options" id="options">Options</a></h2>
    <dl>
    <dt><code>-A <var>auth-username</var>:<var>password</var></code></dt>
    <dd>Supply BASIC Authentication credentials to the server. The username and
    password are separated by a single <code>:</code> and sent on the wire
    base64 encoded. The string is sent regardless of whether the server needs
    it (<em>i.e.</em>, has sent an 401  authentication needed).</dd>

    <dt><code>-c <var>concurrency</var></code></dt>
    <dd>Number of multiple requests to perform at a time. Default is one
    request at a time.</dd>

    <dt><code>-C <var>cookie-name</var>=<var>value</var></code></dt>
    <dd>Add a <code>Cookie:</code> line to the request. The  argument  is
    typically in the form of a <code><var>name</var>=<var>value</var></code>
    pair. This field is repeatable.</dd>

    <dt><code>-d</code></dt>
    <dd>Do not display the "percentage served within XX [ms] table". (legacy
    support).</dd>

    <dt><code>-e <var>csv-file</var></code></dt>
    <dd>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'.</dd>

    <dt><code>-g <var>gnuplot-file</var></code></dt>
    <dd>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. </dd>

    <dt><code>-h</code></dt>
    <dd>Display usage information.</dd>

    <dt><code>-H <var>custom-header</var></code></dt>
    <dd>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 (<em>i.e.</em>, <code>"Accept-Encoding: zip/zop;8bit"</code>).</dd>

    <dt><code>-i</code></dt>
    <dd>Do <code>HEAD</code> requests instead of <code>GET</code>.</dd>

    <dt><code>-k</code></dt>
    <dd>Enable the HTTP KeepAlive feature, <em>i.e.</em>, perform multiple
    requests within one HTTP session. Default is no KeepAlive.</dd>

    <dt><code>-n <var>requests</var></code></dt>
    <dd>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.</dd>

    <dt><code>-p <var>POST-file</var></code></dt>
    <dd>File containing data to POST.</dd>

    <dt><code>-P <var>proxy-auth-username</var>:<var>password</var></code></dt>
    <dd>Supply BASIC Authentication credentials to a proxy en-route. The
    username and password are separated by a single <code>:</code> and sent on 
    the  wire base64 encoded. The string is sent regardless of whether the
    proxy needs it (<em>i.e.</em>, has  sent an 407 proxy authentication
    needed).</dd>

    <dt><code>-q</code></dt>
    <dd>When processing more than 150 requests, <code>ab</code> outputs a
    progress count on <code>stderr</code> every 10% or 100 requests or so. The 
    <code>-q</code> flag will suppress these messages.</dd>

    <dt><code>-s</code></dt>
    <dd>When compiled in (<code>ab -h</code> will show you) use the SSL
    protected <code>https</code> rather than the <code>http</code> protocol.
    This feature is experimental and <em>very</em> rudimentary. You probably
    do not want to use it.</dd>

    <dt><code>-S</code></dt>
    <dd>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).</dd>

    <dt><code>-t <var>timelimit</var></code></dt>
    <dd>Maximum number of seconds to  spend  for  benchmarking. This implies a
    <code>-n 50000</code> internally. Use this to benchmark the server within a
    fixed total amount of time. Per default there is no timelimit.</dd>

    <dt><code>-T <var>content-type</var></code></dt>
    <dd>Content-type header to use for POST data.</dd>

    <dt><code>-v <var>verbosity</var></code></dt>
    <dd>Set verbosity level - <code>4</code> and above prints information on
    headers, <code>3</code> and above prints response codes (404, 200, etc.),
    <code>2</code> and above prints warnings and info.</dd>

    <dt><code>-V</code></dt>
    <dd>Display version number and exit.</dd>

    <dt><code>-w</code></dt>
    <dd>Print out results in HTML tables. Default table is two columns wide,
    with a white background.</dd>

    <dt><code>-x <var>&lt;table&gt;-attributes</var></code></dt>
    <dd>String to use as attributes for <code>&lt;table&gt;</code>. Attributes
    are inserted <code>&lt;table <var>here</var> &gt;</code>.</dd>

    <dt><code>-X <var>proxy</var>[:<var>port</var>]</code></dt>
    <dd>Use a proxy server for the requests.</dd>

    <dt><code>-y <var>&lt;tr&gt;-attributes</var></code></dt>
    <dd>String to use as attributes for <code>&lt;tr&gt;</code>.</dd>

    <dt><code>-z <var>&lt;td&gt;-attributes</var></code></dt>
    <dd>String to use as attributes for <code>&lt;td&gt;</code>.</dd>
    </dl>
</div><div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div>
<div class="section">
<h2><a name="bugs" id="bugs">Bugs</a></h2>
    <p>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>

    <p>It does not implement HTTP/1.x fully; only accepts some 'expected' forms
    of responses. The rather heavy use of <code>strstr(3)</code> shows up top
    in profile, which might indicate a performance problem; <em>i.e.</em>, you
    would measure the <code>ab</code> performance rather than the server's.</p>
</div></div>
<div class="bottomlang">
<p><span>Available Languages: </span><a href="../en/programs/ab.html" title="English">&nbsp;en&nbsp;</a> |
<a href="../ko/programs/ab.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2006 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>
<p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div>
</body></html>