httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Charles Randall <crand...@matchlogic.com>
Subject Dynamically controlling process pool size
Date Wed, 31 Dec 1997 23:49:12 GMT
I've been examining Apache 1.2.4 under load on one of our production
systems. I've observed that the server is slow to respond when the
process pool is growing (request processing times multiply by 2-10x).

After looking at the code, it appears that the pool sizing logic is
something like this:

	Wait for a child process to die or for one second (whichever
comes first)
	then resize the pool if necessary

If my observations are correct, and MaxRequestsPerChild is large, then
server processes can only be spawned at a maximum rate of one per
second. This appears to be a reasonable trade-off for most systems.

I know that I can set MaxSpareServers and MinSpareServers to build up
enough "headroom" to absorb peaks. However, this isn't very optimal.

Ideally, the sizing of the process pool would be more tunable (at a
minimum, adding a "PollServerPoolSizeInterval"). 

I'm wondering if it would be feasible to isolate the code to "resize the
pool if necessary" for experimentation (the obvious response is "Well,
then. Go for it."). I'm thinking of doing things like taking into
account historical information for the last N minutes -- in other words,
don't shrink the pool if I expect another surge like I saw 5 minutes
ago.

Does anyone have any new ideas in this area?

Charles F. Randall
crandall@matchlogic.com
MatchLogic, Inc.



Mime
View raw message