Well what I do, for some reason I can't remember, is to preload
everything (all CPAN etc modules) *except* dev code, in startup.pl

Then the children end up loading dev code on the first request and
getting fatter ..

I might be wrong but most of my VM usage after 10 minutes heavy running
appears to be temporary data from certain infrequent urls that suck in
many rows, pushing the size up over time, so I'm not sure parent
preloading the main code base would save me that much memory.. and then
I'd really have to kick the server in one go to get it to go over to new
code.. and lose the ability to do any phase-in of code at all..

thanks as usual.

by the way, is modperl2 on apache2 quite ok for heavy production use by
now? is an upgraade recommended for performance reasons at least?

-Justin

SB> justin wrote:
SB> [...]
>> SB> Second, you could write a similar to Apache::SizeLimit handler module, which 
>> SB> will determine when to terminate the process, but the problem is that you need 
>> SB> to reload the parent server anyway if you don't rely on Apache::Reload.
>> 
>> Penny drops -- I can do this in my own exit handler, no? where I am
>> doing housekeeping, and possible child termination anyway. I could even
>> syntax check the new code to stop corrupt files or *cough* programmer
>> mistakes.

SB> Of course.

>> Since I'm still using Registry, I'd disable its checking of
>> file timestamps. 

SB> Oops, sorry, I've completely forgotten that Apache::Registry does this 
SB> reloading. You can use Apache::RegistryBB which doesn't do that or write 
SB> another subclass as you have suggested. So yes, it's relevant that you are 
SB> using Registry.

SB>  > But why do I need to worry about the parent server, if
SB>  > the parent server has a fixed code base (a fixed set of library use's in
SB>  > startup.pl and not the "code" as such)?

SB> I've assumed that you preload everything at the server startup (You did know 
SB> that you can preload registry scripts [1], to improve memory sharing, didn't 
SB> you?) in which case the parent server which contains the preloaded data will 
SB> still keep the old code and new child process will "inherit" this old code. Of 
SB> course if you don't preload scripts, than you are fine.

SB> 1)
SB> 
http://perl.apache.org/docs/1.0/guide/performance.html#Preloading_Registry_Scripts_at_Server_Startup
SB> 
http://perl.apache.org/search/swish.cgi?query=Apache%3A%3ARegistryLoader&sbm=&submit=search

SB> __________________________________________________________________
SB> Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
SB> http://stason.org/     mod_perl Guide ---> http://perl.apache.org
SB> mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
SB> http://modperlbook.org http://apache.org   http://ticketmaster.com


-- 
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html

Reply via email to