title: http keep-alive in the modern age
body: <p>So according to the haproxy author, who knows a thing or two about http: </p>
  
  <blockquote>
    <p>Keep-alive was invented to reduce CPU
    usage on servers when CPUs were 100
    times slower. But what is not said is
    that persistent connections consume a
    lot of memory while not being usable
    by anybody except the client who
    openned them. Today in 2009, CPUs are
    very cheap and memory is still limited
    to a few gigabytes by the architecture
    or the price. If a site needs
    keep-alive, there is a real problem.
    Highly loaded sites often disable
    keep-alive to support the maximum
    number of simultaneous clients. The
    real downside of not having keep-alive
    is a slightly increased latency to
    fetch objects. Browsers double the
    number of concurrent connections on
    non-keepalive sites to compensate for
    this.</p>
  </blockquote>
  
  <p>(from <a href="http://haproxy.1wt.eu/" rel="noreferrer">http://haproxy.1wt.eu/</a>)</p>
  
  <p>Is this in line with other peoples experience? ie without keep-alive - is the result barely noticable now? (its probably worth noting that with websockets etc - a connection is kept "open" regardless of keep-alive status anyway - for very responsive apps).
  Is the effect greater for people who are remote from the server - or if there are many artifacts to load from the same host when loading a page? (I would think things like CSS, images and JS are increasingly coming from cache friendly CDNs). </p>
  
  <p>Thoughts? </p>
  
  <p>(not sure if this is a serverfault.com thing, but I won't cross post until someone tells me to move it there). </p>