[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