About Adam Knight
Location
Austin, TX
Home page/site
http://www.hopelessgeek.com/
Author Biography
Adam Knight is one of the founders of Mac Geekery and is a geek at heart. Programmer by day, hacker by night, his daily life revolves around the Macintosh platform, which he has been a user and programmer for since the early days of System 7 when his LCII replaced his Apple //c.
In-between tech jobs, he’s managed to learn the basics of any web hacker: PHP, MySQL, Perl, Apache, Linux, *BSD, and the intricacies of ./configure —prefix=~/bombshelter/. Today, codepoet is concentrating on blogging again, writing some software for the Mac by himself (including Notae) and for his company (such as Photonic) and has a few other toys coming out soon. Bug him over AIM or email [link fixed].



flood is a good tool, but hard to find… It was a testbed for APR (apache portable runtime) and uses an XML document to describe how and what to hit. Nice for basic code coverage.
If you want more detail, there are a few packages if you want to write some code that can be extremely useful. Perl’s WWW::Mechanize is almost industry standard these days for finding bottlenecks. There is also a Ruby package that is highly regarded, but the name escapes me at this time. I want to say it’s called WARTS or something similar.
Also, don’t forget the power of netcat. You can easily write a few small scripts to walk your tree and find the real bottlenecks that the above tools might not be fine-grained enough to handle.
here it is: WATIR
It’s Friday so WTH,
Did it pass?
Xserve1:~ admin$ ab -kc 50 -t 300 http://localhost/
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
Copyright© 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright© 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking localhost (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Completed 20000 requests
Completed 25000 requests
Completed 30000 requests
Completed 35000 requests
Completed 40000 requests
Completed 45000 requests
Finished 50000 requests
Server Software: Apache/1.3.33
Server Hostname: localhost
Server Port: 80
Document Path: /
Document Length: 5634 bytes
Concurrency Level: 50
Time taken for tests: 200.636 seconds
Complete requests: 50000
Failed requests: 100 (Connect: 50, Length: 50, Exceptions: 0)
Broken pipe errors: 0
Keep-Alive requests: 0
Total transferred: 298926522 bytes
HTML transferred: 281536614 bytes
Requests per second: 249.21 [#/sec] (mean)
Time per request: 200.64 [ms] (mean)
Time per request: 4.01 [ms] (mean, across all concurrent requests)
Transfer rate: 1489.89 [Kbytes/sec] received
Connnection Times (ms) min mean[+/-sd] median max
Connect: 0 193 nan 2 74978
Processing: 0 7 7.1 5 170
Waiting: 0 6 7.1 5 169
Total: 0 200 nan 7 74978
Percentage of the requests served within a certain time (ms) 50% 7 66% 8 75% 10 80% 11 90% 13 95% 17 98% 26 99% 43 100% 74978 (last request)
I’m going to say “yes” to that.
—
cp
I have a Linux Virtual Dedicated server with 512MB RAM running Fedora Core 7 and the Plesk control panel.
I ran: ab -k -c 10 -t 30 http://www.articleblast.com:80/index.html and these are my results:
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/
Benchmarking www.articleblast.com (be patient)
Completed 5000 requests
Finished 5600 requests
Server Software: Apache/2.2.8
Server Hostname: www.articleblast.com
Server Port: 80
Document Path: /index.html
Document Length: 100 bytes
Concurrency Level: 10
Time taken for tests: 30.2809 seconds
Complete requests: 5600
Failed requests: 0
Write errors: 0
Non-2xx responses: 5601
Keep-Alive requests: 0
Total transferred: 1641093 bytes
HTML transferred: 560100 bytes
Requests per second: 186.65 [#/sec] (mean)
Time per request: 53.576 [ms] (mean)
Time per request: 5.358 [ms] (mean, across all concurrent requests)
Transfer rate: 53.39 [Kbytes/sec] received
Connection Times (ms) min mean[+/-sd] median max
Connect: 0 0 1.2 0 25
Processing: 9 52 41.3 43 614
Waiting: 4 51 41.2 43 614
Total: 9 52 41.4 43 614
Percentage of the requests served within a certain time (ms) 50% 43 66% 53 75% 62 80% 68 90% 87 95% 110 98% 158 99% 197 100% 614 (longest request)
I have no idea how to read these results though. If anyone could provide any assistance as to that, or even just point me in the right direction, I’d be very grateful!
(Sorry I couldn’t get the results to format correctly, I tried about 10 times with no luck.)