You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by ma...@animalhead.com on 2009/01/07 18:28:26 UTC

ThreadsPerChild vs THR in top using Event MPM

This is not a mod_perl problem, but I received no response to it on the
httpd-users mailing list.  I send it in the hope that there are many  
smart
people subscribed to this list who may be able to answer it.  If you  
know
of another forum or person that might answer it, please tell me where.

Our server is running Apache 2.2.11 with the Event MPM under FreeBSD
6.3, on a site that's largely mod_perl2 driven.

ThreadsPerChild is specified as 25 in an include file of httpd.conf.

The documentation of the Worker MPM (which is said to have the same
configuration characteristics as Event) states that each child process
creates <ThreadsPerChild> threads when it starts, and never changes the
number of threads.

But the THR column of the 'top' utility shows 11 threads per process.
Is 'top' just wrong, or is something constraining how many threads are
being created?  Might my Internet Hosting Provider have built FreeBSD
with a 'max threads per process' parameter of 11?  How can I get more
data?

The only way I know to ask Apache about its threads configuration
is the Apache2::MPM->query facility.  Using this facility for all of
the values noted in the Apache2::Const documentation yields:

MPMQ_MAX_DAEMON_USED(1) = -1
MPMQ_IS_THREADED(2) = 1
MPMQ_IS_FORKED(3) = 2
MPMQ_HARD_LIMIT_DAEMONS(4) = 16
MPMQ_HARD_LIMIT_THREADS(5) = 64
MPMQ_MAX_THREADS(6) = 25
MPMQ_MIN_SPARE_DAEMONS(7) = 0
MPMQ_MIN_SPARE_THREADS(8) = 25
MPMQ_MAX_SPARE_DAEMONS(9) = 0
MPMQ_MAX_SPARE_THREADS(10) = 150
MPMQ_MAX_REQUESTS_DAEMON(11) = 0
MPMQ_MAX_DAEMONS(12) = 10

MPMQ_MAX_THREADS has the same value as ThreadsPerChild, but
its name suggests that this number is a maximum.  Does this imply
that this number may not be created?

Help will be much appreciated,
cmac
www.animalhead.com