Pathologically Eclectic Rubbish Lister | |
PerlMonks |
Re: mpm-worker + mod_perl2 settings meaningby Anonymous Monk |
on Nov 11, 2014 at 00:43 UTC ( [id://1106765]=note: print w/replies, xml ) | Need Help?? |
But I couldn't find anywhere scoping explanation. Let see [ddg://site:perl.apache.org scoping], [google://site:perl.apache.org scoping] site:perl.apache.org scoping, site:perl.apache.org scoping -> http://perl.apache.org/docs/general/perl_reference/perl_reference.html If I start 4 servers with 64 ThreadsPerChild for example, as far as i understand, they are working pretty independently and Apache::DBI, for example, works per client process and shares cache between threads of a client, but not between processes. Um, https://httpd.apache.org/docs/2.2/mod/mpm_common.html#threadsperchild This directive sets the number of threads created by each child process. The child creates these threads at startup and never creates more. If using an MPM like mpm_winnt, where there is only one child process, this number should be high enough to handle the entire load of the server. If using an MPM like worker, where there are multiple child processes, the total number of threads should be high enough to handle the common load on the server. And um, threads site:perl.apache.org -> https://perl.apache.org/docs/2.0/user/intro/overview.html#Threads_Support In order to adapt to the Apache 2.0 threads architecture (for threaded MPMs), mod_perl 2.0 needs to use thread-safe Perl interpreters, also known as "ithreads" (Interpreter Threads). This mechanism can be enabled at compile time and ensures that each Perl interpreter uses its private PerlInterpreter structure for storing its symbol tables, stacks and other Perl runtime mechanisms. When this separation is engaged any number of threads in the same process can safely perform concurrent callbacks into Perl. This of course requires each thread to have its own PerlInterpreter object, or at least that each instance is only accessed by one thread at any given time. So, um? Ok ;) The most important question is about PerlInterp* settings, like PerlInterpMax. Is it max perl interpreters per client, or limitation of total number of interpreters in all client processes? site:perl.apache.org PerlInterpMax -> https://perl.apache.org/docs/2.0/user/config/config.html#C_PerlInterpMax_, https://perl.apache.org/docs/2.0/user/design/design.html#item_PerlInterpMax If all running interpreters are in use, mod_perl will clone new interpreters to handle the request, up until this number of interpreters is reached. when PerlInterpMax is reached, mod_perl will block (via COND_WAIT()) until one becomes available (signaled via COND_SIGNAL()). Default value: 5 Am I right, that perl interpreters being created and cached in the client proces and couldn't be tossed between them? Its not something I'd worry about (not a question I understand, but I think I understand that the answer isn't important, or that as a mod_perl user the answer isn't important to me ) And one more question, can anyone say something about mod_perl for apache 2.4? There is no stable version and my FreeBsd hasn't started without additional shamanistic rituals. I can say nothing support for Apache 2.4 | ModPerl | ModPerl says The Debian project is shipping mod_perl with httpd24 support based on http://svn.apache.org/repos/asf/perl/modperl/branches/httpd24/.
I don't know things but I have quotes -- Anonymous Monk
In Section
Seekers of Perl Wisdom
|
|