From: dave taht <dave.taht@gmail.com>
To: codel@lists.bufferbloat.net, bloat@lists.bufferbloat.net
Subject: [Codel] Exploring the potential of codel, fq_codel, and qfq
Date: Wed, 16 May 2012 00:05:01 -0700 [thread overview]
Message-ID: <4FB3519D.3020809@gmail.com> (raw)
In-Reply-To: <1337148560.8512.1123.camel@edumazet-glaptop>
On 05/15/2012 11:09 PM, Eric Dumazet wrote:
> On Wed, 2012-05-16 at 08:55 +0300, Jonathan Morton wrote:
>> On 9 May, 2012, at 4:04 pm, Kevin Gross wrote:
>>
>>> From the paper (figure 7), you can see that CoDel still leaves spikes of buffer occupancy when network conditions change. These will still be disruptive to real-time traffic. Many networks that need QoS now will still need QoS. Networks that do not have QoS will be much more usable with CoDel.
>> Combining AQM with FQ certainly seems like a good idea to me. I haven't had a chance to try the implementation of fq_codel which already exists yet, but it's compiled and just waiting for me to get around to it. If it works, then it should be an excellent default.
>
> fq_codel has no priority concepts. It's only Fair. But what is
> Fairness ?
>
> In the presence of elephant flows, you get more packets drops from
> elephant flows than from thin ones.
The overall effects of fq_codel's implementation on top of codel's idea
of good queue vs bad queue
has yet to be evaluated. I'd like to see people explore iw10 and TCP
mice, for example on an apache benchmark emulating a typical web site,
as well as typical accesses of a web site, as well as TCP_RR stats
against saturating forward and reverse traffic, with and without ecn, at
rates ranging from 1Mbit to 40GigE.
I'm hoping to get some of that said myself, but it's a lot to do, so I
hope more people jump on it.
Then there's wireless.
All that said, I am loving what I see of fq_codel so far. I think in
general fq is superior to anything a human fiddling with priorities can do.
Also I have hooked up qfq to codel in the debloat script, which might
provide some useful comparisons to fq_codel, and also offers the
possibility of using qfq to hash on device, and fq_codel to fq within
flows to a given device, thus yielding 1/d behavior.
But I am throwing ENOTIME, ENOBRAINCELLS, and ENOENERGY errors a lot
personally, right now. I'd planned to be on vacation last week and
really need some time in a yurt far away from anything electronic.
I am looking forward very much towards published results, analysis, and
benchmarks from everyone else. Certainly I intend to get to where I can
do CDF plots of what I reference below over large
sample periods, etc, at some point... but for your low latency pleasure:
50 netperf -l 120 -t TCP_STREAM, then 1 netperf -l 30 -t TCP_RR, ecn on,
100Mbit ethernet, 3 hops
1 machine has codel, the other does not (so many kernels, so little time)
I note that QFQ is WAY more cpu/memory overhead and I haven't captured
or analysed the streams.
TCP_RR PING
PFIFO_FAST on both, no load: 2440.42 .26 to .59
PFIFO_FAST to PFIFO_FAST: 8.13 121ms
CODEL to PFIFO_FAST: 27.56 Initial impulse of
117ms, settles down to about 25ms
FQ_CODEL to PFIFO_FAST: 272.76 1.2ms, no spike
QFQ+CODEL to PFIFO_FAST: 1002.39 .7ish, no spike
QFQ+FQ_CODEL to PFIFO_FAST 1020.62 .95ms no spike (we are down at
statistical noise levels)
I haven't tried codel to codel or fq_codel to fq_codel much yet.
I note also that I get best results when also applying fq_codel as an
ingress qdisc. With that
on it's hard to get any latencies in excess of 5ms in any direction.
Without it, traffic in the incoming direction (via TCP_MAERTS on
netperf) cracks 30ms worth of delay and 110 TCP_RR vs pfifo_fast.
in debloat is script that does that using a three tier pfifo_fast
superset. Using ifb is rocket science, as is tc, however. It would be
very interesting to come up with a simpler way of using codel or
fq_codel on ingress, perhaps with tbf.
I just checked in the latest revision of debloat and the simple_qos and ingres scripts to the deBloat repository
on github.
>If the elephant flow is the 'high priority' traffic, dropping packets
>from it is not what you wanted.
>pfifo_fast is able to have strict priority.
Which can lead to starvation of all flows, in pfifo_fast's case. Two
possible compromises are
using a 3 tier htb bucket to emulate pfifo_fasts behavior with the
addition of codel for sane
packet drop, or to wedge some interesting behavior into the extra 15
bits in the codel vars.
> If you want Codel and strict
> priority, you can use prio + codel (or prio + fq_codel)
I'm not fond of strict prioritization.
I am unsure of how useful mq_prio is at this point.
>
>
> _______________________________________________
> Codel mailing list
> Codel@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/codel
next prev parent reply other threads:[~2012-05-16 7:05 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-09 1:04 [Codel] The challenge Dave Taht
2012-05-09 2:02 ` [Codel] [Bloat] " Kevin Gross
2012-05-09 3:13 ` [Codel] " Kathleen Nichols
2012-05-09 3:56 ` Dave Taht
2012-05-09 5:16 ` [Codel] [Bloat] " Simon Barber
2012-05-09 5:40 ` Eric Dumazet
2012-05-09 5:41 ` Dave Taht
2012-05-09 7:32 ` [Codel] [codel] some numbers on dual 10Gb links Eric Dumazet
2012-05-09 13:04 ` [Codel] [Bloat] The challenge Kevin Gross
2012-05-16 5:55 ` Jonathan Morton
2012-05-16 6:09 ` Eric Dumazet
2012-05-16 7:05 ` dave taht [this message]
2012-05-16 7:20 ` [Codel] Exploring the potential of codel, fq_codel, and qfq Dave Taht
2012-05-16 7:42 ` [Codel] [Bloat] " Eric Dumazet
2012-05-16 7:46 ` Eric Dumazet
2012-05-16 8:17 ` Eric Dumazet
2012-05-16 9:02 ` Jonathan Morton
2012-05-16 9:14 ` Eric Dumazet
2012-05-16 9:31 ` Jonathan Morton
2012-05-16 9:37 ` Eric Dumazet
2012-05-16 9:59 ` Jonathan Morton
2012-05-16 10:10 ` Eric Dumazet
2012-05-16 13:58 ` Eric Dumazet
2012-05-16 17:40 ` Rick Jones
2012-05-16 17:53 ` Eric Dumazet
2012-05-16 17:33 ` [Codel] " Rick Jones
2012-05-16 17:48 ` [Codel] [Bloat] " Eric Dumazet
2012-05-16 6:09 ` [Codel] [Bloat] The challenge Dave Taht
2012-05-16 6:31 ` Eric Dumazet
2012-05-16 8:15 ` Jonathan Morton
2012-05-09 19:10 ` Roger Jørgensen
2012-05-09 19:15 ` Dave Taht
2012-05-09 19:28 ` Dave Taht
2012-05-09 20:02 ` Simon Barber
2012-05-09 20:06 ` Fred Baker
2012-05-09 21:47 ` Jim Gettys
2012-05-09 23:58 ` Eric Dumazet
2012-05-10 2:34 ` Jonathan Morton
2012-05-10 2:37 ` Dave Taht
2012-05-10 6:35 ` David Woodhouse
2012-05-10 6:54 ` Jonathan Morton
2012-05-10 7:02 ` David Woodhouse
2012-05-10 14:25 ` Justin McCann
2012-05-10 14:42 ` David Woodhouse
2012-05-10 15:34 ` Neil Davies
2012-05-10 21:20 ` Jim Gettys
2012-05-14 7:27 ` Jonathan Morton
2012-05-14 7:34 ` Eric Dumazet
2012-05-14 13:55 ` David Woodhouse
2012-05-18 20:56 ` [Codel] [Bloat] Linux-able modems Jonathan Morton
2012-05-18 21:36 ` Dave Taht
2012-05-18 22:34 ` Dave Taht
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/codel.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FB3519D.3020809@gmail.com \
--to=dave.taht@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=codel@lists.bufferbloat.net \
/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