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]

Reply via email to