On 10/18/2008 10:22 PM, Graham Leggett wrote: > Ruediger Pluem wrote:
> >> Plus the default socket and TCP buffers on most OS should be already >> larger then this. So in order to profit from the optimization the time >> the client needs to consume the ProxyIOBufferSize needs to be >> remarkable. > > It makes no difference how large the TCP buffers are, the backend will > only be released for reuse when the frontend has completely flushed and Sorry I maybe wrong here, but I don't think this is the case. If there is space left in the TCP buffer you write to the socket non-blocking and the data seems to be processed for the sending process then. It does not block until the data is sent by the OS. And even flush buckets do not seem to cause any special processing like a blocking flush. So returning to your CNN example I am pretty much sure that if the TCP buffer for the socket of the client connection holds 92k plus the header overhead your connection to the backend will be released almost instantly. I don't even think so that a close or shutdown on the socket will block until all data in the TCP buffer is sent. But this wouldn't matter on keepalive connection to the client anyway since the connection isn't closed. Regards RĂ¼diger