Fq-Codel
-
-
As @ghkrauss pointed out, there are no bugs currently reported on redmine, that's the good news! However, the biggest issue I have run into is there are varying accounts of how to implement FQ-Codel. This thread, playing-with-fq_codel, appears to have cracked the implementation just this week! If you followed the Netgate August Hangout implementation of FQ-Codel, the shaper would not perform very well. Making the changes outlined in the most recent posts in playing-with-fq_codel make a huge performance difference and from testing, appears to be the correct implementation.
Give that a look and a try. It literally takes five minutes to setup and test. If it is not working correctly, it is very simple to just turn it off.
-
There actually is a related bug
https://redmine.pfsense.org/issues/9024I'm planning on reporting it again as well as another one as soon as I get confirmation that others can recreate the issues.
https://forum.netgate.com/topic/112527/playing-with-fq_codel-in-2-4/798 -
@superweasel said in Fq-Codel:
If you followed the Netgate August Hangout implementation of FQ-Codel, the shaper would not perform very well. Making the changes outlined in the most recent posts in playing-with-fq_codel make a huge performance difference and from testing, appears to be the correct implementation.I did the August hangout implementation and followed the playing-with-fq_codel thread but then got utterly lost in the replies and what was better and what wasn't. Is there a new "simple" guide on how to implement it? Or a specific post in that thread you'd recommend that tells you currently-preferred implementation? Thanks
-
Here are the steps from @Rasool from the thread:
1- Create "out" limiter
Tick Enable
Name: pipe_out
Set the bandwidth
Queue Management Algorithm: Tail Drop
Scheduler: FQ_CODEL
2- Add new QueueTick "Enable"
Name: queue_out
Queue Management Algorithm: Tail Drop
Save
3- Create "in" limiterTick Enable
Name: pipe_in
Set the bandwidth
Queue Management Algorithm: Tail Drop
Scheduler: FQ_CODEL
4- Add new QueueTick "Enable"
Name: queue_in
Queue Management Algorithm: Tail Drop
Save
5- Add limiter in firewall ruleConfigure floating rule (as normal)
In / Out pipe: queue_in / queue_outThe difference between is this and the August Hangout is the Queue Management Algorithm is using Tail Drop.
-
Pinging stills times out when using speedtest and tail-drop. So doesn't solve all problems.
-
-
@harvy66 I wouldn't call it off topic since its regarding codel-fq and it current state. I can see that the other post (playing with codel-fq) has started again with the same issue and a possible fix.
-
Forgive me but I'm sitting here laughing at the irony. FQ-Codel was supposed to be the Holy Grail of QoS that magically does what you want without any twiddling, and people were desperately waiting for it. Now that we have it, nobody seems to know how to get it working.
-
@kom Heh yeah. Quote from bufferbloat:
CoDel is a novel “no knobs”, “just works”, “handles variable bandwidth and RTT”, and simple AQM algorithm.
-
I can appreciate the cynicism but what we're all witnessing here looks to be more of an integration issue with pfSense than any real issues with schedulers or AQMs that are working in FreeBSD 11.2. The engine seems to work and perform! The integration of the engine with the rest of the drivetrain in pfSense... Well, I'm hopeful that it will be worked out soon. ;)
<img src="pollyanna.gif">
-
I agree. Not an issue of the algorithm but the implementation. There seems to be no documentation on how to properly configure ipfw to make proper use. ipfw is the issue. It has a bunch of knobs and those can have negative interactions that ruin the benefits of fq_codel.