3a. *the plan*: that those N subprocesses never copy that memory; they can share
the read-only config data with the parent process.
3b. *reality*: shared RAM is very low; each subprocess has its own copy of these
pages, as this "top -b1 -n -c" output from linux 2.6.6 demonstrates:
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
25963 jm 25 0 1032 24416 21m 4140 0 0.0 2.5 0:00 /usr/bin/perl -T
25969 jm 25 0 1032 24416 21m 4140 0 0.0 2.5 0:00 spamd child
25970 jm 25 0 1032 24416 21m 4140 0 0.0 2.5 0:00 spamd child
25971 jm 25 0 1032 24416 21m 4140 0 0.0 2.5 0:00 spamd child
25972 jm 25 0 1032 24416 21m 4140 0 0.0 2.5 0:00 spamd child
25973 jm 25 0 1032 24416 21m 4140 0 0.0 2.5 0:00 spamd child
"SHARE" is actually an accurate illustration of how much of that memory is being
shared between those processes; as you can see, the vast majority of the SIZE is
*not* being shared.
Your analysis is wrong. RSS is the memory being used by the process, not SIZE. In the above, most of the memory *is* shared. Maybe this isn't a problem at all?
See the section "Process Memory Measurements" in the mod_perl guide (not sure where it is - I'm referring to the book version).
Matt.
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email ______________________________________________________________________
