Hi, I've tested your configuration with my current patch (not published yet), here is the results:
# ab -n 100000 -c 10 -k http://192.168.1.47/ ; sleep 15 ; echo ; ./stats This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 192.168.1.47 (be patient) Completed 10000 requests Completed 20000 requests Completed 30000 requests Completed 40000 requests Completed 50000 requests Completed 60000 requests Completed 70000 requests Completed 80000 requests Completed 90000 requests Completed 100000 requests Finished 100000 requests Server Software: Apache/2.2.17 Server Hostname: 192.168.1.47 Server Port: 80 Document Path: / Document Length: 12 bytes Concurrency Level: 10 Time taken for tests: 3.664 seconds Complete requests: 100000 Failed requests: 0 Write errors: 0 Keep-Alive requests: 99016 Total transferred: 33057374 bytes HTML transferred: 1200024 bytes Requests per second: 27291.42 [#/sec] (mean) Time per request: 0.366 [ms] (mean) Time per request: 0.037 [ms] (mean, across all concurrent requests) Transfer rate: 8810.38 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 1 Processing: 0 0 0.3 0 19 Waiting: 0 0 0.3 0 19 Total: 0 0 0.3 0 19 Percentage of the requests served within a certain time (ms) 50% 0 66% 0 75% 0 80% 0 90% 1 95% 1 98% 1 99% 1 100% 19 (longest request) 5 nobody 5 www -------------------- 10 TOTAL * Please note that nobody is the multiplexer and www the worker. Please run the the following command: ab -n 100000 -c 10 -k http://YOURHOST/ ; sleep 15; echo ; ./stats Here is the stats source: ------------ #!/bin/sh cd /tmp ps -aux > tmp.txt cat tmp.txt | grep httpd | cut -d" " -f1 | grep -v "^root$" > tmp2.txt cat tmp2.txt | sort | uniq -c | sort -n echo "--------------------" echo -n " " echo -n `cat tmp.txt | grep -v "^root" | grep -c httpd` echo " TOTAL" rm tmp.txt rm tmp2.txt ------------ Please post back the results of this commands. -- Marcelo Coelho marcelo at mco2.com.br On Dec 30, 2010, at 6:21 AM, Taavi Sannik wrote: > Hello again! > > It seems that new patch does not always honor the process limits. > > For example I have this in my configuration: > <IfModule peruser.c> > ServerLimit 200 > MaxClients 200 > MinSpareProcessors 1 > MinProcessors 5 > MaxProcessors 150 > MaxRequestsPerChild 10000 > ExpireTimeout 30 > IdleTimeout 10 > MinMultiplexers 5 > MaxMultiplexers 15 > MultiplexerIdleTimeout 10 > ProcessorWaitTimeout 10 > </IfModule> > (I know the timeouts are very low, just don't want to wait for the children > to die) > > So if I send a request spike to the server (10k requests for example) and > then wait for the idle timeout to kick in, then my server environment will > not always have 5 workers (which is my minimum limit). In fact many cases I > tested, my server environment has no workers at all. > > The case actually gets worse as it sometimes works the same way with > multiplexers. I have been using this patch on my development server (which > has very low traffic) and sometimes if I just leave the server running and > check back later, then I see a dead server, because all the multiplexers have > died. > > There are no errors or warnings about children segfaulting or anything > suggesting that server is killing the children by itself. > > -- > Taavi Sannik > DataCode OY > > _______________________________________________ > Peruser mailing list > [email protected] > http://www.telana.com/mailman/listinfo/peruser > _______________________________________________ Peruser mailing list [email protected] http://www.telana.com/mailman/listinfo/peruser
