On Fri, 2005-03-18 at 17:37 -0500, Stas Bekman wrote:
> Anders, the first priority is to figure out how to reproduce the problem 
> at will. If you don't manage that, you most likely are going to waste 
> hours staring at the screen. I'd concentrate on that task first.
> 
> Try using ab (apachebench), httpd_load or another utility to stress test. 
> More advanced tools can record and reply real requests. For some examples see:
> http://modperlbook.org/html/ch09_01.html#pmodperl-CHP-9-SECT-1
> 
> Armed with one of these tools you can know exactly how many requests 
> you've issued and then making sure that logs/access_log is in agreement.
> 
> Also take a look at Apache::Resource which can set certain limits on the 
> process resource consumption.
> 

I have been doing some testing with ab and I found some interesting
cases.


On our production system I get the following when testing an important
mod_perl enabled script from my local desktop:

$ ab -n 100 -c 5 "http://www.xxxxxx.dk/cgi/xxxxxx.cgi?q=test&allowall=1";
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.121.2.1 $>
apache-2.0
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 www.xxxxxx.dk (be patient).....done


Server Software:        Apache/1.3.33
Server Hostname:        www.xxxxxx.dk
Server Port:            80

Document Path:          /cgi/xxxxxx.cgi?q=test&allowall=1
Document Length:        44128 bytes

Concurrency Level:      5
Time taken for tests:   45.82097 seconds
Complete requests:      100
Failed requests:        21
   (Connect: 0, Length: 21, Exceptions: 0)
Write errors:           0
Total transferred:      4433142 bytes
HTML transferred:       4412842 bytes
Requests per second:    2.22 [#/sec] (mean)
Time per request:       2254.105 [ms] (mean)
Time per request:       450.821 [ms] (mean, across all concurrent
requests)
Transfer rate:          96.02 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        5  234 766.0     24    3016
Processing:   997 2002 1287.8   1330    6932
Waiting:       36  374 849.1     92    3082
Total:       1015 2237 1529.8   1393    7515

Percentage of the requests served within a certain time (ms)
  50%   1393
  66%   1756
  75%   3162
  80%   3670
  90%   4298
  95%   6101
  98%   6948
  99%   7515
 100%   7515 (longest request)


There are 21 failed requests which is surprising to me. The error type
is Length. What does this mean? I don't see any explanation of the
output of ab on the man page.



When testing our development server I sometimes get this error from ab:
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
apr_recv: Connection reset by peer (104)
Total of 3320 requests completed

I don't know what this mean either. I am not sure why the ab would die
of this kind of error instead of just reporting that an error happened.

Hope you can explain this.

Thanks
  Anders


Reply via email to