[EMAIL PROTECTED] wrote:

>__pthread_alt_unlock() loops through a list of threads that are blocked on a
>mutex to find the thread with the highest priority. I don't know which mutex
>this is; I'm guessing it's the one associated with worker's condition variable. 
>The ironic thing is that for httpd all the threads have the same priority AFAIK,
>so these cycles don't do us much good.  I'm not aware of a patch to improve
>this, so I think our choices for scalability in the mean time are keeping
>ThreadsPerChild
>very low or prefork.
>

The leader/follower MPM might solve this problem.  It doesn't share one
big condition variable among all the idle workers; instead, each worker
has its own condition var.  If you have time to try the 2.0.41 version
of leader/follower in your test environment, I'd be really interested
in hearing whether it fixes the __pthread_alt_unlock() bottleneck.
(Note: It needs to be built with "./configure 
--enable-nonportable-atomics=yes"
for best results on x86.)

Brian


Reply via email to