What's new

FQ-Codel not working well in practice - broken implementation ?

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

NGRhodes

Regular Contributor
Hi,

Last night I spent a few hours with DSLreports speedtest, comparing FQ-Codel against SFQ and in EVERY case there was approx 50ms of extra lag/bloat and I noticed high instability in transfer rates.

I have saved the results and can upload when I am back home, but for now a summary:


Using Traditional QOS with no rules:
I compared no QOS to SFQ and FQ-Codel at 100% line speeds (52.6 down, 10 up), FQ-Codel.
I compared SFQ to FQ-Codel at 95%, 90%, 85% and 80% (repeated 3 times each).
Around 90% gave me the best speed to bloat ratio.

Then I tried Adaptive QOS at 90% comparing SFQ to FQ-Codel.

Everytime FQ-Codel was significantly worse.

Notes:
This is a clean install of the latest Merlin firmware.
I repeated each test 3 times and got consistently similar results (I had to run the DSL reports speed test over 30 times).
This was the only wired device with WiFi off.
I focused on testing upload as the router has the most control over this.
I tried running a ping against Google for a few tests and confirmed that bloat/lag captured by DSLreports speed tests reflects accurately against my ping results.

Is FQ-Codel broken (does it rely on Kernel features not supported by the ancient Kernel Asus/broadcom supply), ?
Does it not play well with the way QOS is implemented in ASUS-WRT ?
It is my router/specific build of firmware ?
Has anyone else test FQ-Codel against SFQ ?
 
I use the freshjr qos script slightly modified to allow the manual bw setting to be manipulated by an automatic speedtest I run on a pi.

With this combo I get all A+ or A rated from dslreports, 0 set as overhead and up and down speeds set to 98% of what the bandwidth test gets.

I am also running fq-Codel
 
I use the freshjr qos script slightly modified to allow the manual bw setting to be manipulated by an automatic speedtest I run on a pi.

With this combo I get all A+ or A rated from dslreports, 0 set as overhead and up and down speeds set to 98% of what the bandwidth test gets.

I am also running fq-Codel
is there a way to get the script to auto calculate 90% bandwidth of the values inputted.
 
I am sure you could script this as it is simply updating an nvram value.

It would probably need to be a scheduled script or something that was run manually.
 
FYI, you will need to use bc if you want to do floating point arithmetic.

I use bc in my scripts as the original script strips off the part after the decimal point.
 
Hi,

Last night I spent a few hours with DSLreports speedtest, comparing FQ-Codel against SFQ and in EVERY case there was approx 50ms of extra lag/bloat and I noticed high instability in transfer rates.

I have saved the results and can upload when I am back home, but for now a summary:


Using Traditional QOS with no rules:
I compared no QOS to SFQ and FQ-Codel at 100% line speeds (52.6 down, 10 up), FQ-Codel.
I compared SFQ to FQ-Codel at 95%, 90%, 85% and 80% (repeated 3 times each).
Around 90% gave me the best speed to bloat ratio.

Then I tried Adaptive QOS at 90% comparing SFQ to FQ-Codel.

Everytime FQ-Codel was significantly worse.

Notes:
This is a clean install of the latest Merlin firmware.
I repeated each test 3 times and got consistently similar results (I had to run the DSL reports speed test over 30 times).
This was the only wired device with WiFi off.
I focused on testing upload as the router has the most control over this.
I tried running a ping against Google for a few tests and confirmed that bloat/lag captured by DSLreports speed tests reflects accurately against my ping results.

Is FQ-Codel broken (does it rely on Kernel features not supported by the ancient Kernel Asus/broadcom supply), ?
Does it not play well with the way QOS is implemented in ASUS-WRT ?
It is my router/specific build of firmware ?
Has anyone else test FQ-Codel against SFQ ?
Which ISP/modem out of interest? If Virgin and SuperHub3, say no more...

EDIT: Which Asus do you have? You say latest firmware, can you confrim this is 380.68_2?
 
It’s a command line calculator which lets you do floating point calculations.

I installed it via optware.
 
did you set the per packet overhead for your connection?, also there is kernel restrictions on the FQ_Codel implementation since the kernel is version 2.6.36, and extra features require a newer kernel version, I do suggest testing out this script https://www.snbforums.com/threads/r...ements-custom-rules-and-inner-workings.36836/.

Packet overhead is set to 8.
Yes I saw freshjr, I like the idea of allocating the default rule to a priority. I would change the rate/ceilings based on my experience and personal preferences.
I avoided using excessive QoS rules as its easy to mask behaviours of queuing algorithms by giving (as an example) control packets priority.

is there a way to get the script to auto calculate 90% bandwidth of the values inputted.

You should be able to do something like below directly in the script:

DownBand= 'expr $RealDownBand * 0.9'


Which ISP/modem out of interest? If Virgin and SuperHub3, say no more...

EDIT: Which Asus do you have? You say latest firmware, can you confrim this is 380.68_2?

BT, using FTTC on their 52/10 infinity product. I am using an ECI Openreach modem connected to my AC56U and yes its running 380.68_2.
 
Last edited:
I'm using fq_codel and see amazing improvements, especially with Fresh_JRs script and correctly set manual settings on Adaptive QOS.

One word of caution that caught me out is that there seems to be a UI bug when turning on QOS. On my RT-AC68U I select fq_codel and turn on QOS in the same action, it appears to save but when I navigate away from the page and back again its actually set to SFQ (and performs like SFQ). I then have to reset back to fq_codel and re-save to actually select it correctly
 
I'm using fq_codel and see amazing improvements, especially with Fresh_JRs script and correctly set manual settings on Adaptive QOS.

You need to test without adaptive QOS or any rules in traditional QOS to ensure you are only testing the queuing discipline and not your rules/classifications.
 
If you have a fibre connection do you check the ATM box?
 
Packet overhead is set to 8.
Yes I saw freshjr, I like the idea of allocating the default rule to a priority. I would change the rate/ceilings based on my experience and personal preferences.
I avoided using excessive QoS rules as its easy to mask behaviours of queuing algorithms by giving (as an example) control packets priority.



You should be able to do something like below directly in the script:

DownBand= 'expr $RealDownBand * 0.9'




BT, using FTTC on their 52/10 infinity product. I am using an ECI Openreach modem connected to my AC56U and yes its running 380.68_2.
FTTC sounds like vdsl 2 aka fiber to the node if you use pppoe its 27 for the overhead, also is your modem in bridge mode?
 
ATM or asynchronous transfer mode its just for adsl connections
Is there any way to make VPN traffic a priority over anything else? Can this be accomplished by QOS or other means?
 
You need to test without adaptive QOS or any rules in traditional QOS to ensure you are only testing the queuing discipline and not your rules/classifications.

I prefer to compare the performance of the queuing disciplines in my usage scenario to see which works best for me. In practical use fq_codel makes a significant improvement to latency under maximum load conditions and using Dslreports it moves me from a bufferbloat rating of C to A+ with no changes other than the queuing discipline.


Sent from my iPhone using Tapatalk
 
I prefer to compare the performance of the queuing disciplines in my usage scenario to see which works best for me. In practical use fq_codel makes a significant improvement to latency under maximum load conditions and using Dslreports it moves me from a bufferbloat rating of C to A+ with no changes other than the queuing discipline.


Sent from my iPhone using Tapatalk
How on Earth? What modem/router combo are you using?

I'm using a Docsis 3.1 SB8200 and a AC86U. Any streaming downstairs just saps my connection. Sad that I can pick up older hardware and run more up to date fq_codel on it and it absolutely would stomp what I have going here with the AC86U.
 

Similar threads

Support SNBForums w/ Amazon

If you'd like to support SNBForums, just use this link and buy anything on Amazon. Thanks!

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top