Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 7 Jan 2009 17:29:41 -0800
From:      Alfred Perlstein <alfred@freebsd.org>
To:        craig@animalhead.com
Cc:        freebsd-threads@freebsd.org
Subject:   Re: ThreadsPerChild in Apache2 vs THR in top using Event MPM
Message-ID:  <20090108012941.GX60686@elvis.mu.org>
In-Reply-To: <9F36BDB2-36D4-4941-BD05-36D2CC5C77AB@animalhead.com>
References:  <9F36BDB2-36D4-4941-BD05-36D2CC5C77AB@animalhead.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I think 6.3 uses "libkse" which is N:M threads library, so top(1)
can't know how many user threads there are, just kernel threads.

Do this:
 ldd /path/to/httpd

If you see libpthread, you're using "kse" and won't see the exact
number of threads.

-Alfred

* craig@animalhead.com <craig@animalhead.com> [090107 17:10] wrote:
> This is more of an Apache question than a FreeBSD question, but I've
> received no response from enquiries to the users@httpd list.  Perhaps
> someone receiving from this list will be able to help?
> 
> 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 some such constraint?  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 as a child process starts?
> 
> Help will be much appreciated,
> cmac
> www.animalhead.com
> 
> _______________________________________________
> freebsd-threads@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-threads
> To unsubscribe, send any mail to "freebsd-threads-unsubscribe@freebsd.org"

-- 
- Alfred Perlstein



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090108012941.GX60686>