Some time ago we had an internal report at $bigco that under a very
specific load test, event performed significantly worse than worker.
The particular test very fast/small responses with keepalive but no
pipelining.

One clear culprit is each keepalive request (without pipelining to
trigger the data-in-input-filters path) grabbing the timeout/keepalive
mutex.

Doing a one-socket poll on the request thread with even a fraction of
a second before grabbing the mutex and giving the thread back allows
things like static elements referenced from a page to be handled on
the same thread (and without contention over the timeout/keepalive
mutex).  There might be a similar effect with Apache behind a reverse
proxy that keeps the connection busy but doesn't pipeline.

But, I don't know how damaging tieing up that thread will really be.
And I don't know if we can be smart about when we sit on the thread.

Any thoughts?
-- 
Eric Covener
[email protected]

Reply via email to