[opensource-dev] New HTTP Library & Project Viewer

Tateru Nino tateru.nino at gmail.com
Mon Jul 30 14:27:25 PDT 2012


On 31/07/2012 3:20 AM, Oz Linden (Scott Lawrence) wrote:
> On 2012-07-29 13:58 , Sheet Spotter wrote:
>> Does increasing the HTTP connection limit also increase the burden on the
>> server and network?
>>
>> Increasing the HTTP connection limit on one client might improve the
>> experience for one person. It might also diminish the experience for
>> everyone else on the same server.
> Exactly so.  The effect is more complex than just consuming file 
> descriptors on the server side, as well.  TCP congestion control works 
> far better when dealing with a smaller number of connections. Any 
> packets that are not subject to congestion control that are sharing the 
> same network path as a TCP connection increase the likelihood of a 
> dropped packet in the connection flow, which causes the connection to 
> immediately cut its transmission window by half. The viewer already puts 
> a lot of UDP traffic into the same path. The handshake packets that open 
> and close TCP connections are also not subject to the congestion control 
> - which means that opening each new connection increases the chances 
> that each of your existing connections will slow down by half.  Opening 
> many connections also puts additional strain on routers in the path that 
> are doing connection tracking (which too many do), adding another 
> possible source of problems.
>
> In general, when persistent connections and pipelined requests (having 
> more than one request in flight on a connection at a time) are used, 
> HTTP performs far better with a small number of connections than with 
> more.  As we begin deploying support for this way of using it on the 
> server side, we'll be able to do good experiments to determine what the 
> right tradeoffs are for network behavior and server load to provide 
> optimal experience for users.
>
>
Also, a badly behaving connection (eg: one that is dropping packets)
leaves the connection open longer, while delivering less data per unit
time. That's basically a *waste* of server resources. If I overload my
crappy consumer router with connections it can't properly handle, I'm
indirectly impacting the experience of other users. Not a desirable
situation.



More information about the opensource-dev mailing list