<div dir="ltr">Out of curiosity, what does ethtool show for the related nics on both servers? I also have Varnish on a 10G server, and can reach around 7.7Gbit/s serving anywhere between 6-28k requests/second, however it did take some sysctl tuning and the westwood TCP congestion control algo</div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jul 5, 2017 at 3:09 PM, John Salmon <span dir="ltr"><<a href="mailto:John.Salmon@deshawresearch.com" target="_blank">John.Salmon@deshawresearch.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
I've been using Varnish in an "intranet" application. The picture
is roughly:<br>
<br>
origin <-> Varnish <-- 10G channel ---> switch <--
1G channel --> client<br>
<br>
The machine running Varnish is a high-performance server. It can<br>
easily saturate a 10Gbit channel. The machine running the client is
a<br>
more modest desktop workstation, but it's fully capable of
saturating<br>
a 1Gbit channel.<br>
<br>
The client makes HTTP requests for objects of size 128kB.<br>
<br>
When the client makes those requests serially, "useful" data is<br>
transferred at about 80% of the channel bandwidth of the Gigabit<br>
link, which seems perfectly reasonable.<br>
<br>
But when the client makes the requests in parallel (typically<br>
4-at-a-time, but it can vary), *total* throughput drops to about 25%<br>
of the channel bandwidth, i.e., about 30Mbyte/sec.<br>
<br>
After looking at traces and doing a fair amount of experimentation,
we<br>
have reached the tentative conclusion that we're seeing "TCP Incast<br>
Throughput Collapse" (see references below)<br>
<br>
The literature on "TCP Incast Throughput Collapse" typically
describes<br>
scenarios where a large number of servers overwhelm a single inbound<br>
port. I haven't found any discussion of incast collapse with only
one<br>
server, but it seems like a natural consequence of a
10Gigabit-capable<br>
server feeding a 1-Gigabit downlink.<br>
<br>
Has anybody else seen anything similar? With Varnish or other
single<br>
servers on 10Gbit to 1Gbit links.<br>
<br>
The literature offers a variety of mitigation strategies, but there
are<br>
non-trivial tradeoffs and none appears to be a silver bullet.<br>
<br>
If anyone has seen TCP Incast Collapse with Varnish, were you able
to work<br>
around it, and if so, how?<br>
<br>
Thanks,<br>
John Salmon<br>
<br>
References:<br>
<br>
<a class="m_5374091370556894899moz-txt-link-freetext" href="http://www.pdl.cmu.edu/Incast/" target="_blank">http://www.pdl.cmu.edu/Incast/</a><br>
<br>
Annotated Bibliography in:<br>
<a class="m_5374091370556894899moz-txt-link-freetext" href="https://lists.freebsd.org/pipermail/freebsd-net/2015-November/043926.html" target="_blank">https://lists.freebsd.org/<wbr>pipermail/freebsd-net/2015-<wbr>November/043926.html</a><span class="HOEnZb"><font color="#888888"><br>
<br>
<div class="m_5374091370556894899moz-signature">-- <br>
<b>.</b></div>
</font></span></div>
<br>______________________________<wbr>_________________<br>
varnish-misc mailing list<br>
<a href="mailto:varnish-misc@varnish-cache.org">varnish-misc@varnish-cache.org</a><br>
<a href="https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc" rel="noreferrer" target="_blank">https://www.varnish-cache.org/<wbr>lists/mailman/listinfo/<wbr>varnish-misc</a><br></blockquote></div><br></div>