Cake - FQ_codel the next generation
 help / color / mirror / Atom feed
From: xnor <xnoreq@gmail.com>
To: "Jonathan Morton" <chromatix99@gmail.com>
Cc: "Cake List" <cake@lists.bufferbloat.net>
Subject: Re: [Cake] cake vs fqcodel with 1 client, 4 servers
Date: Wed, 06 Dec 2017 19:32:58 +0000	[thread overview]
Message-ID: <em5473e9e0-9c02-4716-a155-5825497bb98d@gaming> (raw)
In-Reply-To: <CAJq5cE2qLW5_C1gJ0UgrD-kgbsErU1MW5D7zZzesxz53=j0h1Q@mail.gmail.com>

>At those speeds, you probably still have a large enough BDP per flow 
>that TCP can respond appropriately.  I'm testing at 512Kbps, where it's 
>easy to get into single-packet BDPs.
I've tried again with 96 connections to the same server, so 196 Kbps 
each, and that reduces the gross download rate from over 17 to below 10 
Mpbs.
The inbound interface still receives 18.7 Mbps and crude latency 
measurements with a ping running at the same time show only a slight 
increase on average.

The only problem I have with this (besides the amount of perfectly good 
received data that needs to be discarded without ECN to keep TCP in 
check... that's terrible protocol design) is that I do get 3x to 4x 
spikes over the steady state latency when the download begins. That's 
with "just" 16 additional connections starting.


>A first-pass dynamic target adjustment is now pushed, and running here. 
>  It doesn't solve the problem completely, probably because it doesn't 
>guarantee 4xMTU, only 1xMTU, but it looks like it might be beginning to 
>help and I'm pretty sure it's the correct approach.  Tuning it from 
>here should be easy.
>
I don't know exactly what you're adjusting and what you're adjusting to, 
but I see two things that would help:

1) Reduce the amount of data that needs to be dropped.
Maybe the "pattern" of how packets are dropped can be improved such that 
on *average* the sender sends at the same rate but overall less data 
needs to be dropped at the receiver.
For example, instead of dropping the just received packet because it 
exceeded some threshold and doing this for each packet it could make 
more sense to drop multiple packets at once, making the sender to slow 
down significantly.
The problem with this of course would be a more pronounced zig-zag 
pattern in the bandwidth (with the implementation either limiting on the 
peaks or average rate).
(I'm not sure if this makes sense given common TCP implementations.)

2) Predict the slope of the bandwidth and slow down the sender 
proactively, especially during slow-start.
If the connection is in an exponential speed up phase then we have to 
drop packets *before* we notice that the current (or even worse: 
average) rate is above the configured rate. The situation gets worse if 
multiple connections are in that phase at the same time, and ideally 
that would have to be accounted for as well.

Those are just some suggestions. I haven't studied cake's implementation 
so maybe it already does something like that.


  reply	other threads:[~2017-12-06 19:32 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-04 22:30 Georgios Amanakis
2017-12-05  0:06 ` Dave Taht
2017-12-05  1:13   ` Georgios Amanakis
2017-12-05  1:38     ` Jonathan Morton
2017-12-05  3:50       ` George Amanakis
2017-12-05  4:48         ` Jonathan Morton
2017-12-05 21:15           ` Dave Taht
2017-12-05 21:26             ` Georgios Amanakis
2017-12-05 22:39               ` xnor
2017-12-06  9:37                 ` Jonathan Morton
2017-12-06 19:32                   ` xnor [this message]
     [not found]                     ` <CAJq5cE3MUfCuV_=GXAAOwvAXxee_dcJBaUkRVAEEWwyT5m7gAw@mail.gmail.com>
2017-12-07  1:59                       ` Jonathan Morton
2017-12-07  2:27             ` Jonathan Morton
2017-12-07  2:30               ` George Amanakis
2017-12-07  2:58               ` George Amanakis
2017-12-07  3:04                 ` Jonathan Morton
2017-12-07  3:08                   ` Georgios Amanakis
2017-12-07  7:08                     ` Jonathan Morton
2017-12-07  8:21                       ` Jonathan Morton
2017-12-07  8:51                         ` Kevin Darbyshire-Bryant
2017-12-07  9:03                           ` Jonathan Morton
2017-12-07 13:17                             ` Georgios Amanakis
2017-12-07 22:12                               ` xnor
2017-12-07 22:34                                 ` Georgios Amanakis

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/cake.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=em5473e9e0-9c02-4716-a155-5825497bb98d@gaming \
    --to=xnoreq@gmail.com \
    --cc=cake@lists.bufferbloat.net \
    --cc=chromatix99@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox