Penguin
Annotated edit history of ab(8) version 2, including all changes. View license author blame.
Rev Author # Line
1 perry 1 ab
2 !!!ab
3 NAME
4 SYNOPSIS
5 DESCRIPTION
6 OPTIONS
7 BUGS
8 SEE ALSO
9 ----
10 !!NAME
11
12
13 ab - Apache HTTP server benchmarking tool
14 !!SYNOPSIS
15
16
17 __ab__ [[ __-k__ ] [[ __-e__ ] [[ __-q__ ] [[
18 __-S__ ] [[ __-i__ ] [[ __-s__ ] [[ __-n__
19 ''requests'' ] [[ __-t__ ''timelimit'' ] [[ __-c__
20 ''concurrency'' ] [[ __-p__ ''POST file'' ] [[
21 __-A__ ''Authenticate username:password'' ] [[
22 __-X__ ''proxy [[ :port ]'' ] [[ __-P__ ''Proxy
23 Authenticate username:password'' ] [[ __-H__ ''Custom
24 header'' ] [[ __-C__ ''Cookie name=value'' ] [[
25 __-T__ ''content-type'' ] [[ __-v__ ''verbosity''
26 ] ] [[ __-w__ ''output HTML'' ] ] [[ __-g__ ''output
27 GNUPLOT'' ] ] [[ __-e__ ''output CSV'' ] ] [[
28 __-x__ '''' ] ] [[ __-y__
29 '''' ] ] [[ __-z__ ''
30 '' ]
31 ''[[http[[s]://]hostname[[:port]/path''
32
33
34 __ab__ [[ __-V__ ] [[ __-h__ ]
35 !!DESCRIPTION
36
37
38 __ab__ is a tool for benchmarking the performance of your
2 perry 39 Apache !HyperText Transfer Protocol (HTTP) server. It does
1 perry 40 this by giving you an indication of how many requests per
41 second your Apache installation can serve.
42 !!OPTIONS
43
44
2 perry 45 __-k__ Enable the HTTP !KeepAlive feature; that is,
1 perry 46 perform multiple requests within one HTTP session. Default
2 perry 47 is no !KeepAlive.
1 perry 48
49
50 __-d__ Do not display the
51 __
52
53
54 __-S__ Do not display the median and standard deviation
55 values, nor display the warning/error messages when the
56 average and median are more than one or two times the
57 standard deviation apart. And default to the min/avg/max
58 values. (legacy support).
59
60
61 __-s__ When compiled in (bb -h will show you) use the SSL
62 protected __https__ rather than the __http__ protocol.
63 This feature is experimental and __very__ rudimentary.
64 You propably do not want to use it.
65
66
2 perry 67 __-k__ Enable the HTTP !KeepAlive feature; that is,
1 perry 68 perform multiple requests within one HTTP session. Default
2 perry 69 is no !KeepAlive. __-i__ Use an HTTP 'HEAD' instead of the
1 perry 70 GET method. Cannot be mixed with POST.
71
72
73 __-n__ ''requests''
74
75
76 The number of requests to perform for the benchmarking
77 session. The default is to perform just one single request,
78 which will not give representative benchmarking
79 results.
80
81
82 __-t__ ''timelimit''
83
84
85 The number of seconds to spend benchmarking. Using this
86 option automatically set the number of requests for the
87 benchmarking session to 50000. Use this to benchmark the
88 server for a fixed period of time. By default, there is no
89 timelimit.
90
91
92 __-c__ ''concurrency''
93
94
95 The number of simultaneous requests to perform. The default
96 is to perform one HTTP request at at time, that is, no
97 concurrency.
98
99
100 __-p__ ''POST file''
101
102
103 A file containing data that the program will send to the
104 Apache server in any HTTP POST requests.
105
106
107 __-A__ ''Authorization
108 username:password''
109
110
111 Supply Basic Authentication credentials to the server. The
112 username and password are separated by a single ':', and
113 sent as uuencoded data. The string is sent regardless of
114 whether the server needs it; that is, has sent a 401
115 Authentication needed.
116
117
118 __-X__ ''proxy[[:port]''
119
120
121 Route all requests through the proxy (at optional
122 port).
123
124
125 __-P__ ''Proxy-Authorization
126 username:password''
127
128
129 Supply Basic Authentication credentials to a proxy en-route.
130 The username and password are separated by a single ':', and
131 sent as uuencoded data. The string is sent regardless of
132 whether the proxy needs it; that is, has sent a 407 Proxy
133 authentication needed.
134
135
136 __-C__ ''Cookie name=value''
137
138
139 Add a 'Cookie:' line to the request. The argument is
140 typically a 'name=value' pair. This option may be
141 repeated.
142
143
144 __-p__ ''Header string''
145
146
147 Append extra headers to the request. The argument is
148 typically in the form of a valid header line, usually a
149 colon separated field value pair, for example,
150 'Accept-Encoding: zip/zop;8bit'.
151
152
153 __-T__ ''content-type''
154
155
156 The content-type header to use for POST data.
157
158
159 __-g__ ''gnuplot file''
160
161
162 Write all measured values out as a 'gnuplot' or TSV (Tab
163 separate values) file. This file can easily be imported into
164 packages like Gnuplot, IDL, Mathematica, Igor or even
165 Excell. The labels are on the first line of the
166 file.
167
168
169 __-q__ When processing more than 150 requsts; __ab__
170 outputs a progress count on __stderr__ every 10% or 100
171 requests or so. The __-q__ flag qill suppress these
172 messages.
173
174
175 __-e__ ''CSV file''
176
177
178 Write a Comma separated value (CSV) file which contains for
179 each percentage (from 1% to 100%) the time (in milli
180 seconds) it took to serve that percentage of the requests.
181 This is usually more usefull than the 'gnuplot' file; as the
182 results are already
183
184
185 __-v__ Sets the verbosity level. Level 4 and above prints
186 information on headers, level 3 and above prints response
187 codes (for example, 404, 200), and level 2 and above prints
188 warnings and informational messages.
189
190
191 __-w__ Print out results in HTML tables. The default
192 table is two columns wide, with a white
193 background.
194
195
196 __-x__ ''attributes''
197
198
199 The string to use as attributes for
200 here__
201 __
202
203
204 __-y__ ''attributes''
205
206
207 The string to use as attributes for
208
209
210 __-z__ ''attributes''
211
212
213 The string to use as attributes for
214
215
216 __-V__ Display the version number and exit.
217
218
219 __-h__ Display usage information.
220 !!BUGS
221
222
223 There are various statically declared buffers of fixed
224 length. Combined with inefficient parsing of the command
225 line arguments, the response headers from the server, and
226 other external inputs, these buffers might
227 overflow.
228
229
230 __Ab__ does not implement HTTP/1.x fully; instead, it
231 only accepts some 'expected' forms of
232 responses.
233
234
235 The rather heavy use of __strstr(3)__ by the program may
236 skew performance results, since it uses significant CPU
237 resources. Make sure that performance limits are not hit by
238 __ab__ before your server's limit is
239 reached.
240
241
242 The HTML output is not as complete as the text
243 output.
244
245
246 Up to version 1.3d __ab__ has propably reported values
247 way to low for most measurements; as a single timeout (which
248 is usually in the order of seconds) will shift several
249 thousands of milli-second responses by a considerable
250 factor. This was further componded by a serious interger
251 overrun which would for realistic run's (i.e. those longer
252 than a few minutes) produce believable but totally bogus
253 results. Thanks to Sander Temme
254 __
255 !!SEE ALSO
256
257
258 __apache(8)__
259 ----
This page is a man page (or other imported legacy content). We are unable to automatically determine the license status of this page.