Hi Neal, Yuchung,
Sorry for the late answer. I was in vacation for a couple weeks, then got busy
with other activities.
On 04/13/2017 11:03 PM, Neal Cardwell wrote:
> Thanks for the traces! Attached are plots of each case (all generated
> with the "tcptrace" tool), along with a plot that superimposes each
> case, for easier comparison.
Great tip on "tcptrace", thanks!
> The plots show that the behaviors for all the cases are pretty similar;
> they are all within a round trip of each other. There are small
> differences due to the details of pacing, or the lack thereof. But they
> have all fundamentally the same growth rate: doubling the sending rate
> each round trip. That's because the transfers are so small (a few
> megabytes) relative to the BDP of the path (.120 seconds * 1 Gbps = 15
> megabytes) that the flows all spend their time in slow-start (CUBIC) or
> the analogous Startup mode in BBR; both of these modes double the
> sending rate each round trip in order to rapidly probe the available
> capacity.
Yes, agreed. Between BBR and CUBIC/pfifo, there is this one RTT extra delay that
just makes sense, as BBR is pacing the packets.
I took another look at the traces I sent and they don't show one case, though,
that is the bigger time for the CUBIC/fq without hystart tuning. But, as you
already explained, the default behavior does affect slow-start negatively.
> The flows don't fill the pipe, so they don't reach the phases in their
> lifetimes where the significant differences in steady-state behavior
> between CUBIC and BBR would show up.
I thought about it, but anyway had an idea that BBR would have a significant
difference against CUBIC.
On 04/14/2017 12:43 PM, Yuchung Cheng wrote:
> Notice that in terms of smoothness BBR/fq-pacing >
> Cubic-tuned-hystart/fq-pacing > Cubic/pfifo.
I noticed that, really nice!
> Our experience is that smoothing the slow start burst significantly reduced
> the loss rate on shallow-buffered switches on Google's edge networks. Reducing
> potential losses in slow start is a big performance improvement even in Cubic
> by reducing congestion avoidance / cubic-growth phase towards the end of a
> transfer.
Maybe a bit off-topic, but do you have any data or statistics on loss rates in
such shallow-buffered switches?
I did some local tests where I mistakenly introduced several packet losses
through a low packet limit on netem (used to add delay). Could this be similar
to a shallow-buffered switch situation? What I got was that some transfers took
as long as ~10s to finish while median time was ~2s, using BBR. Analyzing the
packets from the 10s transfer, I saw an ~11% packet loss on the first 2s of the
connection, when BBR seems to set a fixed slow rate. Is this expected? I can
send the traces if they're useful.
Thanks!
Douglas.