At 09:18 AM 3/12/02 -0500, Bill Marrs wrote:
>If anyone has any ideas what might cause the httpd parent (and new 
>children) to lose a big chunk of shared memory between them, please let me 
>know.

I've seen this happen many times.  One day it works fine, the next you're 
in trouble.  And in my experience, it's not a matter of why this avalanche 
effect happens, but is it more a matter of "why didn't it happen 
before"?  You may not have realised it that you were just below a 
"threshold" and now you're over it.  And the change can be as small as the 
size of a heavily used template that suddenly gets over an internal memory 
allocation border, which in turn causes Perl to allocate more, which in 
turn causes memory to become unshared.

I have been thinking about a perl/C routine that would internally "use" all 
of the memory that was already allocated by Perl.  Such a routine would 
need to be called when the initial start of Apache is complete so that any 
child that is spawned has a "saturated" memory pool, so that any new 
variables would need to use newly allocated memory, which would be 
unshared.  But at least all of that memory would be used for "new" 
variables and not have the tendency to pollute "old" memory segments.

I'm not sure whether my assessment of the problem is correct.  I would 
welcome any comments on this.

I have two ideas that might help:
-
- other than making sure that you have the most up-to-date (kernel) version 
of your OS.  Older Linux kernels seem to have this problem a lot more than 
newer kernels.

I wish you strength in fixing this problem...


Elizabeth Mattijsen

Reply via email to