Hi,
        I'm trying to run the SPECweb99 against Apache (on a 1-way box).

I noticed that if I start one server process with a large number of threads
(1000), the server goes into a heavily sleep state (with around 80 % idle
time).

A first guess is that I'm using SysV semaphores, and a semlock can bring
down the entire httpd to crawl. I'm re-compiling using pthread mutexes
whenever possible.

I took a gprof on the system, and noticed that httpd was sleeping on a
condition - the first guess ap_queue_pop () !!..(anything else ?). 
Question : Has anybody done some sort of profiling on the ap_queue_* stuff -
if so, can you please share the data ? 

I had another dumb question - (was this already considered and rejected ?)
instead of having the worker threads compete for the incoming connections
(using ap_queue_pop .. and hence mutex_lock), assign the connection to the
next free thread on a round-robin basis - if I'm not wrong, zeus does
something similar.

-Madhu

Reply via email to