>
> <IfModule peruser.c>
> # Multiplexer pool
> MinMultiplexers 10
> MaxMultiplexers 20
> Multiplexer nobody nogroup
> # ProcessorWaitTimeout 2 10
> ProcessorWaitTimeout 5 20
>
> # Fork limits
> ServerLimit 200
> MaxClients 200
> MaxRequestsPerChild 1000
>
> # Processor defaults
> MinProcessors 15
> MinSpareProcessors 3
> MaxProcessors 2000
> # MaxProcessors 500
>
> # Timeouts
> IdleTimeout 60
> ExpireTimeout 300
> </IfModule>
>
There's no point in setting the MaxProcessors greater than
ServerLimit/MaxClients. ServerLimit = global limit of all processes,
MaxProcessors = limit of worker processes within a single server
environment.
> The best way to replicate this issue, is just use the peruser config I
> pasted before, then
> try sending 2000 queries per second with ab, and you'll see what I mean.
You don't need to send 2000 concurrent requests to achieve 2000 req/s.
Here's an example conf and ab output:
Configuration:
<IfModule peruser.c>
ServerLimit 250
MaxClients 250
MinSpareProcessors 1
MinProcessors 10
MaxProcessors 200
MaxRequestsPerChild 1000
ExpireTimeout 7200
IdleTimeout 300
MinMultiplexers 1
MaxMultiplexers 50
MultiplexerIdleTimeout 120
ProcessorWaitTimeout 10
</IfModule>
$ ab -c 200 -n 100000 http://mytestserver/
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 dev.kood.ee (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.13
Server Hostname: mytestserver
Server Port: 80
Document Path: /
Document Length: 5043 bytes
Concurrency Level: 200
Time taken for tests: 27.708 seconds
Complete requests: 100000
Failed requests: 0
Write errors: 0
Total transferred: 531205312 bytes
HTML transferred: 504305043 bytes
Requests per second: 3609.02 [#/sec] (mean)
Time per request: 55.417 [ms] (mean)
Time per request: 0.277 [ms] (mean, across all concurrent requests)
Transfer rate: 18721.99 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 17 275.6 1 9014
Processing: 0 36 107.1 33 11308
Waiting: 0 33 106.9 29 11302
Total: 0 53 297.9 36 11308
Percentage of the requests served within a certain time (ms)
50% 36
66% 40
75% 43
80% 45
90% 52
95% 56
98% 67
99% 83
100% 11308 (longest request)
This was done on a virtualized 2x Intel Xeon E5430 2.66GHz.
--
Taavi Sannik
DataCode OY
_______________________________________________
Peruser mailing list
[email protected]
http://www.telana.com/mailman/listinfo/peruser