[opensource-dev] New HTTP Library & Project Viewer
Oz Linden (Scott Lawrence)
oz at lindenlab.com
Mon Jul 30 10:20:33 PDT 2012
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.
More information about the opensource-dev
mailing list