Is it correct that when the Apache/mod_perl parent process swaps to disk, a
large part of it (swapped pages) becomes unshared?  Even after the kernel
restores the pages from swap, do they remain unshared?  So once the parent
process becomes unshared, new apache children that are spawned only share
the parent's pages that have never been swapped?

This is what I've grok'ed from my experiments with top/GTop.

If this is the case, it would be helpful to prevent the parent process from
*ever* swapping to disk.

The Linux kernel has a system call mlockall() which disables all memory
paging for the current process.  This sounds like exactly the recipe for
preventing parent process swapping.  It won't affect spawned child
processes, so shouldn't pose a threat of consuming all physical memory and
crashing the system.

I want to play around with this, but I'm not sure where in the mod_perl
source to call mlockall().  It would need to be before the parent spawns any
children..  Has anyone tried using Linux's mlockall()/mlock() with mod_perl?

-Adi

Reply via email to