[Bloat] Difference between codel and fq_codel?

Jonathan Morton chromatix99 at gmail.com
Fri Apr 8 15:36:10 EDT 2016


> On 3 Feb, 2016, at 22:09, Rick Jones <rick.jones2 at 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



More information about the Bloat mailing list