I would even say PER THREAD or PER PERL INTERPRETER.

Indeed, I'm running Per/mod perl under Windows, and there's one unique Apache process (except the parent one) hosting all perl interpreters.
Something to ask about modperl and memory in Windows. I know modperl uses threads in Windows. But does modperl respond to the MaxRequestsPerChild setting?

In other words, if I specify that the 'child' should serve only 100 requests before respawning, does Perl free up all memory allocated by the thread before respawning the thread?


Actually, under Windows, all Apache Threads and Perl Interpreters are living under the same child process. (which is spawned from the Apache parent process at server startup)

The MaxRequestsPerChild directives is working under windows, and it specifies the total number of requests all your threads can process. After this number of threads is processed by all the threads, the child process is killed (and all its threads altogether), and spawned again from the parent process.

So, for example, if you specify

MaxRequestsPerChild 100

And then, if
thread 1 processes 40 requests
thread 2 processes 35 requests
thread 3 processes 25 requests

The whole process is started again.

Of course, I'm talking here about independant requests being processed (i.e. requests under the same "Keep Alive timeout" count for one)

Lionel.

Reply via email to