Wow, if I understand your estimation on the reduction of time needed to
start up the server was correct.
How many processors do you have on this machine? The time needed to
merely launch the 150 children had to be >(12*150)/(num of processors)
seconds, since each of them took at least 12 secs of CPU time (not
counting other time spent in waiting state). On a machine hosting 4
processors it means around 4-5 minutes which is in agreement with what
you reported. Perhaps my reckoning is over simplified, it would mean the
time was cut by a 98%....
-- Massimo
On 01/25/2011 08:45 AM, Karl Lehenbauer wrote:
Massimo et al,
I got the master-interp branch of Rivet built and running on a near-production
next-generation webserver running FreeBSD 8.2-PRERELEASE. Moving the loading
of the hundreds of packages we are doing in the ChildInitScript into the
ServerInitScript cut the apachectl graceful time to launch 150 children to
about five seconds of realtime from start to the system being stable and idle
and ready to handle requests. And it works. Each child process shows 0 CPU
seconds, as opposed to about 12 CPU seconds having each child do all the
initialization separately (and mostly system CPU, too).
We had some hacks in there to randomly delay Apache child startup, too, because
it made the whole thing faster by reducing contention. That's off in test and
we won't need it anymore.
If all goes well we'll try it tomorrow in production and if it works on one of
the webservers, we'll push it to all of them.
Karl
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]