Hello! Many changes. Here it is a new patch (v8).
Patch from RC2: http://opensource.mco2.net/download/apache/peruser/peruser-rc2-to-rc3-v8.patch Full patch from vanilla Apache 2.2.17: http://opensource.mco2.net/download/apache/peruser/peruser-rc3-full-v8.patch Changes (from RC2): * (v8) Bug fixed: apachectl graceful now is more stable, like RC2 version * (v8) Bug fixed: fixed some segfaults (thank you Dave Steinberg for sending your core dumps) * (v8) Bug fixed: server dies with infinite loop script, reported by Taavi Sannik * (v8) Bug fixed: "long lost child" error, reported by Taavi Sannik * (v8) Performance: update_all_counters() rewritten without malloc() and free() * (v7) Bug fixed: multiplexers now can clone a processor child if all workers are busy. * (v6) Bug fixed: apachectl graceful now working properly, without "long lost child" errors * (v5) Not released to public * (v4) Code cleanup * (v4) Performance: childs are started in ~25ms, 40 times faster than in RC2 (~1000ms) * (v4) Bug fixed: now checking if total_processors is 1 (first access) to start StartProcessors * (v3) Performance: new child type (CHILD_TYPE_RESERVED) to avoid collision (2 childs trying to get the same free slot) * (v3) Bug fixed: fixed a bug in RC2, wait_timeout was always 0, never sleeping to wait for new workers. * (v2) Performance: StartProcessors, new configuration directive to control the number of child processors per vhost at startup * (v2) Performance: childs are started in ~50ms, 20 times faster than in RC2 (~1000ms) * (v1) Performance: faster to lookup for free slots (this is important on busy servers, with many virtual hosts) * (v1) Performance: faster to count processors, one single loop counts all processors * (v1) Bug fixed: bug when MinSpareProcessors is set to 0 (now all workers processes are killed when idle_timeout is reached) * (v1) Bug fixed: Free-up slots when a WORKER or PROCESSOR unexpectedly dies Some stress test: # ab -n 100000 -c 100 -k http://SERVER/ 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 SERVER (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: SERVER Server Port: 80 Document Path: / Document Length: 12 bytes Concurrency Level: 100 Time taken for tests: 2.722 seconds Complete requests: 100000 Failed requests: 0 Write errors: 0 Keep-Alive requests: 99055 Total transferred: 33060116 bytes HTML transferred: 1200060 bytes Requests per second: 36734.39 [#/sec] (mean) Time per request: 2.722 [ms] (mean) Time per request: 0.027 [ms] (mean, across all concurrent requests) Transfer rate: 11859.80 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.5 0 7 Processing: 0 3 0.7 2 15 Waiting: 0 3 0.6 2 15 Total: 0 3 0.9 2 16 WARNING: The median and mean for the processing time are not within a normal deviation These results are probably not that reliable. WARNING: The median and mean for the waiting time are not within a normal deviation These results are probably not that reliable. WARNING: The median and mean for the total time are not within a normal deviation These results are probably not that reliable. Percentage of the requests served within a certain time (ms) 50% 2 66% 3 75% 3 80% 3 90% 3 95% 5 98% 5 99% 8 Regards, -- Marcelo Coelho marcelo at mco2.com.br _______________________________________________ Peruser mailing list [email protected] http://www.telana.com/mailman/listinfo/peruser
