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