httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ruediger Pluem <rpl...@apache.org>
Subject Re: strange usage pattern for child processes
Date Wed, 15 Oct 2008 20:50:41 GMT


On 10/15/2008 10:26 PM, Graham Leggett wrote:
> Lars Eilebrecht wrote:
> 
>> The second odd thing is that the connections/threads in W state
>> seem to be hanging, i.e., no data is being transferred over the
>> connection and these threads/connection time out after about 256
>> seconds. However, the general Timeout setting is 30s so why
>> isn't the connection killed after 30s?
> 
> Something else to try is to look at the ProxyIOBufferSize parameter.
> 
> The proxy reads from the backend in blocks, and as soon as a block is
> not full (ie it's the last block), the proxy will complete and terminate
> the backend request before sending the last block on to the client.

No. See below.

> If the request is small enough to fit into a single block (or if the
> buffer size is big enough for a bigger request to fit), what this means
> is that a slow client on the front end will not hold up the backend,
> which will be released immediately.

But only if ap_pass_brigade does not block (for long), which means that either
the client consumes the data fast enough or that the buffering in the core output
filter / TCP buffer is sufficient. Furthermore in the HTTP(s) reverse proxy case
all buckets in the output chain need to be flushed before the connection is released
back to the connection pool. This means that this data either needs to be consumed
by the client or needs to fit into the TCP buffer.

Regards

RĂ¼diger


Mime
View raw message