Torsten Foertsch schrieb:
Of course it depends on your setup. If you configure only a small number of interpreters then the overall memory footprint can be lower then with prefork where each process runs its own interpreter. But the effect of the copied interpreters outweighs this very soon.
I see. Guess I have some reading to do to better understand what "interpreters" as in Perl ithreads really means.
Measuring memory consumption on Linux is not simple. You can't simply add up all RSS or VSZ figures or something like this. I know of 2 approaches that work more or less well. 1) call mlockall in the parent and then use /proc/PID/smaps (or Linux::Smaps) to measure shared memory 2) take a system with enough RAM and nothing else to do, start apache with different numbers of children and watch the free memory with vmstat while doing so. Then you can estimate the amount of memory that is consumed by one apache process. See the attached picture for example.
Thanks for sharing this.
You can run recovery in a separate process spawned at startup by the parent.
That's a good idea. And a simple one at that. Thank you! Michael