You are viewing a plain text version of this content. The canonical link for it is here.
Posted to apache-bugdb@apache.org by st...@apache.org on 1999/05/14 15:29:33 UTC

Re: os-windows/3815: Keep Alive option let server response delay at first request.

[In order for any reply to be added to the PR database, ]
[you need to include <ap...@Apache.Org> in the Cc line ]
[and leave the subject line UNCHANGED.  This is not done]
[automatically because of the potential for mail loops. ]
[If you do not include this Cc, your reply may be ig-   ]
[nored unless you are responding to an explicit request ]
[from a developer.                                      ]
[Reply only with text; DO NOT SEND ATTACHMENTS!         ]


Synopsis: Keep Alive option let server response delay at first request.

State-Changed-From-To: open-analyzed
State-Changed-By: stoddard
State-Changed-When: Fri May 14 06:29:32 PDT 1999
State-Changed-Why:
Lee,
Thanks for the additional info. Now I understand what is happening. Apache on Win32 will accept all connections and queue them for the worker thread pool. The queue size is unbounded (not good. I'll try to fix this in the next release). 

What you are seeing is hundreds of connections being accepted and queued, but all 250 worker threads are blocked on persistent connections, blocked waiting to receive requests from clients.  If a thread is blocked waiting on data from the client, it is not available to service new connections on the queue. 

Here are a tuning tip...
You need to balance the settings of ThreadsPerChild with the KeepAliveTimeout.  First, I'd decrease KeepAliveTimeout, to perhaps 10 or maybe 5 seconds. If you still see problems, try increasing ThreadsPerChild. You should favor decreasing KeepAliveTimeout over increasing ThreadsPerChild.