Greg Ames wrote:
one thread per connection with an active http request, plus the listener/event thread who owns all the connections in keepalive. I believe Paul is saying set ThreadsPerChild to 1200 to handle the worst case behavior - 100% of the connections are doing real work at some instant and none are in keepalive timeouts.
Can you still have multiple processes? We use 10k plus threads per box with worker.
The updated patch for today adds multiple processes. (same directives as the worker MPM):
http://www.apache.org/~pquerna/event-mpm/event-mpm-2004-10-25.patch
However, the big thing it doesn't use is accept serialization.
This means all event threads are listening for incoming clients. The first one to process the incoming connection gets it. This does not block the other event threads, since they set the listening socket to non-blocking before starting their loop.
This seems to work fine on my tests. It has the sucky side effect of waking up threads sometimes when they are not needed, but on a busy server, trying to accept() will likely be fine, as there will be a backlog of clients to accept().
-Paul Querna
