Buried in this blog post is a great tip: Using the Apache web server utility
ab to determine web site availability and speed.
Definitely check out the post (which is about hosting static sites on Amazon S3), and if you are interested, install ab, which comes bundled for Debian/Ubuntu-style Linux systems in
apache2-utils and for Fedora/RHEL/CentOS-style systems in
The article linked above gives you the command to install
apache2-utils in Ubuntu/Debian, and I could provide a similar
yum command for Fedora/CentOS, but you probably already know how to install packages both from the command line and a GUI, right?
(I'm not sure how you'd get the
Apache utilities in Mac OS X or Windows -- maybe someone else knows.)
Once you have the appropriate package installed (I already had it and didn't even know it), you just run the
ab program from a terminal. This line hits my site with 1,000 requests:
$ ab -n 1000 -c 40 http://stevenrosenberg.net/blog
And the output is:
This is ApacheBench, Version 2.3 <: 1604373 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking stevenrosenberg.net (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: nginx/1.6.2 Server Hostname: stevenrosenberg.net Server Port: 80 Document Path: /blog Document Length: 309 bytes Concurrency Level: 40 Time taken for tests: 4.828 seconds Complete requests: 1000 Failed requests: 0 Non-2xx responses: 1000 Total transferred: 530000 bytes HTML transferred: 309000 bytes Requests per second: 207.14 [#/sec] (mean) Time per request: 193.109 [ms] (mean) Time per request: 4.828 [ms] (mean, across all concurrent requests) Transfer rate: 107.21 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 71 82 32.9 76 1077 Processing: 76 106 31.6 96 431 Waiting: 76 105 29.9 96 282 Total: 148 188 46.7 182 1157 Percentage of the requests served within a certain time (ms) 50% 182 66% 189 75% 199 80% 209 90% 232 95% 259 98% 283 99% 312 100% 1157 (longest request)
That's a pretty useful utility, am I right?
And it also shows that Ode can easily handle 1,000 simultaneous requests. Not bad at all.