* [Bloat] Difference between codel and fq_codel?
@ 2016-02-03 19:22 John Klimek
2016-02-03 20:09 ` Rick Jones
2016-02-03 20:33 ` Toke Høiland-Jørgensen
0 siblings, 2 replies; 5+ messages in thread
From: John Klimek @ 2016-02-03 19:22 UTC (permalink / raw)
To: bloat
I'm currently using pfaense which only supports codel and not fq_codel. Is there a big difference between them? Is it worth looking into using a different router?
Sent from my iPhone
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bloat] Difference between codel and fq_codel?
2016-02-03 19:22 [Bloat] Difference between codel and fq_codel? John Klimek
@ 2016-02-03 20:09 ` Rick Jones
2016-04-08 19:36 ` Jonathan Morton
2016-04-08 19:37 ` Jim Gettys
2016-02-03 20:33 ` Toke Høiland-Jørgensen
1 sibling, 2 replies; 5+ messages in thread
From: Rick Jones @ 2016-02-03 20:09 UTC (permalink / raw)
To: bloat
On 02/03/2016 11:22 AM, John Klimek wrote:
> I'm currently using pfaense which only supports codel and not
> fq_codel. Is there a big difference between them? Is it worth
> looking into using a different router?
My simplistic understanding is fq_codel creates several/many different
queues, spreading flows across those queues and applying codel on each
queue.
http://man7.org/linux/man-pages/man8/tc-fq_codel.8.html
http://man7.org/linux/man-pages/man8/tc-codel.8.html
rick jones
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bloat] Difference between codel and fq_codel?
2016-02-03 20:09 ` Rick Jones
@ 2016-04-08 19:36 ` Jonathan Morton
2016-04-08 19:37 ` Jim Gettys
1 sibling, 0 replies; 5+ messages in thread
From: Jonathan Morton @ 2016-04-08 19:36 UTC (permalink / raw)
To: Rick Jones; +Cc: bloat
> On 3 Feb, 2016, at 22:09, Rick Jones <rick.jones2@hpe.com> wrote:
>
> On 02/03/2016 11:22 AM, John Klimek wrote:
>> I'm currently using pfaense which only supports codel and not
>> fq_codel. Is there a big difference between them? Is it worth
>> looking into using a different router?
>
> My simplistic understanding is fq_codel creates several/many different queues, spreading flows across those queues and applying codel on each queue.
There *is* a big difference between fq_codel and plain codel. Simply put, the “fq” part of fq_codel is capable of mitigating inter-flow induced latency much more reliably than plain codel can. Codel in itself manages only intra-flow induced latency.
Fq_codel maintains a separate codel instance per queue, so it also does a better job of applying the correct amount of congestion feedback to each flow, rather than a blanket amount over all traffic using the link.
The difference is particularly marked when you are dealing with congestion-unresponsive traffic (which codel is inherently poor at managing), but is measurable and even noticeable even with standard TCP flows.
- Jonathan Morton
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bloat] Difference between codel and fq_codel?
2016-02-03 20:09 ` Rick Jones
2016-04-08 19:36 ` Jonathan Morton
@ 2016-04-08 19:37 ` Jim Gettys
1 sibling, 0 replies; 5+ messages in thread
From: Jim Gettys @ 2016-04-08 19:37 UTC (permalink / raw)
To: Rick Jones; +Cc: bloat
[-- Attachment #1: Type: text/plain, Size: 1267 bytes --]
On Wed, Feb 3, 2016 at 3:09 PM, Rick Jones <rick.jones2@hpe.com> wrote:
> On 02/03/2016 11:22 AM, John Klimek wrote:
>
>> I'm currently using pfaense which only supports codel and not
>> fq_codel. Is there a big difference between them? Is it worth
>> looking into using a different router?
>>
>
> My simplistic understanding is fq_codel creates several/many different
> queues, spreading flows across those queues and applying codel on each
> queue.
>
>
> http://man7.org/linux/man-pages/man8/tc-fq_codel.8.html
>
> http://man7.org/linux/man-pages/man8/tc-codel.8.html
It also preferentially schedules "new" queues, relative to queues that
have a standing queue. So short transactions such as dchp, ra, short RPC
transactions, VOIP, etc fly through the router relative to bulk TCP flows.
This algorithm does really wonderful things for any flow that is a "good
citizen" by pacing their traffic at their share of available bandwidth,
rather than bursting their traffic. For the first time, there is incentive
to be a "good citizen" in your behavior.
>
>
> rick jones
>
> _______________________________________________
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat
>
[-- Attachment #2: Type: text/html, Size: 2647 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Bloat] Difference between codel and fq_codel?
2016-02-03 19:22 [Bloat] Difference between codel and fq_codel? John Klimek
2016-02-03 20:09 ` Rick Jones
@ 2016-02-03 20:33 ` Toke Høiland-Jørgensen
1 sibling, 0 replies; 5+ messages in thread
From: Toke Høiland-Jørgensen @ 2016-02-03 20:33 UTC (permalink / raw)
To: John Klimek; +Cc: bloat
John Klimek <jklimek@gmail.com> writes:
> I'm currently using pfaense which only supports codel and not
> fq_codel. Is there a big difference between them? Is it worth looking
> into using a different router?
Yes, and quite possibly. :)
Basically, Codel drops packets to try to keep queues small. This works
reasonably well. However, what FQ-CoDel adds is flow isolation and
priority for sparse flows, which is what in most cases gets rid of
almost all of the added latency under load.
For a (much) longer version of the above, see this:
http://www.sciencedirect.com/science/article/pii/S1389128615002479 -- In
particular, figure 2 shows the performance of a bunch of different
algorithms, including CoDel and FQ-CoDel :)
-Toke
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-04-08 19:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-02-03 19:22 [Bloat] Difference between codel and fq_codel? John Klimek
2016-02-03 20:09 ` Rick Jones
2016-04-08 19:36 ` Jonathan Morton
2016-04-08 19:37 ` Jim Gettys
2016-02-03 20:33 ` Toke Høiland-Jørgensen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox