summaryrefslogtreecommitdiff
path: root/docs/manual/programs/ab.html
blob: eda63058922d3d0b44ed643e35c99a8d8d6133c9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<!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>