|
Contact Us |
|||
Web Server Performance Testing with Apache BenchNovember, 2009
Apache Bench: powerful, little-known web tool
Apache Bench Source Page: Apache HTTP Server home Example of using Apache bench with concurrency of 3 (3 processes), and time of 5 minutes (300 seconds):
user@system-80% ab -c 3 -t 300
"http://abc.mysite.net/file_path1/path2/other/filename.html"
This is ApacheBench, Version 1.3d <$Revision: 1.67 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking abc.mysite.net (be patient)
Finished 3248 requests
Server Software: Apache/1.3.27
Server Hostname: abc.mysite.net
Server Port: 80
Document Path: file_path1/path2/other/filename.html
Document Length: 1043 bytes
Concurrency Level: 3
Time taken for tests: 300.045 seconds
Complete requests: 3248
Failed requests: 2761
(Connect: 0, Length: 2761, Exceptions: 0)
Broken pipe errors: 0
Total transferred: 3905103 bytes
HTML transferred: 3391761 bytes
Requests per second: 10.83 [#/sec] (mean)
Time per request: 277.14 [ms] (mean)
Time per request: 92.38 [ms] (mean, across all concurrent requests)
Transfer rate: 13.02 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 115 121 117.3 116 3114
Processing: 146 155 78.7 148 3147
Waiting: 141 155 78.7 148 3146
Total: 258 276 141.1 265 3263
Percentage of the requests served within a certain time (ms)
50% 265
66% 267
75% 269
80% 272
90% 283
95% 288
98% 316
99% 349
100% 3263 (last request)
user@system-81%
In the above example, if the server returns dynamic content, the file size may be different from one request to another. One difference, for example, is ads on the page - they vary per request and have different byte size. When this happens, Apache bench notes it as "Failed request" for Length (byte size) being different. Tests against static and then dynamic content show this anomaly, which we can ignore. The ab queries against static pages don't return any of these failures for length. In the next example, as you can see, the program name is often the default /usr/local/apache/bin/ab but may vary depending on your installation. In Apache2 installations, the new name is ab2.
user@system-81% ab -V 5:05PM /usr/local/apache/bin
This is ApacheBench, Version 1.3d <$Revision: 1.67 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
user@system-82% ab --help 5:05PM /usr/local/apache/bin
ab: invalid option -- -
ab: invalid option `?'
Usage: ab [options] [http://]hostname[:port]/path
Options are:
-n requests Number of requests to perform
-c concurrency Number of multiple requests to make
-t timelimit Seconds to max. wait for responses
-p postfile File containg data to POST
-T content-type Content-type header for POSTing
-v verbosity How much troubleshooting info to print
-w Print out results in HTML tables
-i Use HEAD instead of GET
-x attributes String to insert as table attributes
-y attributes String to insert as tr attributes
-z attributes String to insert as td or th attributes
-C attribute Add cookie, eg. 'Apache=1234' (repeatable)
-H attribute Add Arbitrary header line, eg. 'Accept-Encoding: zop'
Inserted after all normal header lines. (repeatable)
-A attribute Add Basic WWW Authentication, the attributes
are a colon separated username and password.
-P attribute Add Basic Proxy Authentication, the attributes
are a colon separated username and password.
-X proxy:port Proxyserver and port number to use
-V Print version number and exit
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-g filename Output collected data to gnuplot format file.
-e filename Output CSV file with percentages served
-h Display usage information (this message)
user@system-83%
Want to know how much those Server-Side includes are costing your site in performance? Want to know how fast your mirror site is serving? Want to know what performance effects the new architecture is having on your web site? These are all questions that Apache Bench can answer. Caution: Don't use Apache Bench to throw spurious traffic, and never overstep the bounds of courtesy when throwing traffic at other sites! |
||||
|
1998-2015 Celebrazio.net