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

On Jan 23, 2011, at 6:09 PM, Massimo Manghi wrote:

> The code in branches/master-interp is now holding the code I modified with the
> master interpreter creation and initialization through the undocumented
> ServerInitScript directive. Children interps are supposed to be clones of the
> master interp and shouldn't need further explicit additional initialization
> (didn't test it in a complex environment though)
> 
> -- Massimo
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to