CU188 - Reducing CPU usage of QoS

Hi. I just read the blog post about upcoming CU188 and the changes coming to QoS. I am guessing at least in part, that was due to my post here.
A couple of questions. In this part of the blog post:

we have found that CAKE has a much higher CPU consumption and could become a bottleneck on devices with a weak processor but fast network interfaces. Therefore we are changing IPFire to use fq_codel by default

Will this convert existing installations from CAKE to fq_codel, or only take effect on new installs?

And, what does this mean?

When configuring the Quality of Service in the web UI, we will always use CAKE for its advanced features.

I thought it was either CAKE or fq_codel, but the quote above makes it sound like elements of both technologies can be combined. Can someone elaborate on what “advanced features” of CAKE will be kept?

Thank you

My understanding is that if you don’t have QoS configured in the WUI then with CU188 fq_codel will be used for the default setup.

If you have enabled the QoS WUI and configured the various settings then CAKE will be used and not fq_codel.

As far as I am aware this will be managed for you behind the scenes, so nothing needs to be done to have this implemented.

Thanks, Adolf. What if you have a weak cpu, fast internet, and configured some QoS settings? That scenario would potentially bring back the higher cpu usage and bottlenecking?

I would presume, but I am not certain, that you would then have to turn of QOS or get a more powerful system.

@ms or @arne_f would be more knowledgeable on that topic.

This is a correct statement.

Yes, but the bottleneck is actually not that bad. Let’s say you are running IPFire on an ancient 500 MHz CPU and have a Gigabit coming in every second, well then there is not much we can do for you.

The problems with CAKE should not even show on reasonably fast processors at all. It is just becoming a problem if there are huuuge discrepancies between CPU power and bandwidth. This is the same with any other feature like the IPS. You will need certain CPU power to run all of them simultaneously.

CAKE has a lot more features than fq_codel and hence it requires more CPU time. The QoS UI can use a lot of those features and they are absolutely worth it.

2 Likes

In my experience, the main issue arises when using PPPoE in combination with QoS. Individually, they both perform well, but together, even on my Intel i3-N305 system, I experience a bottleneck at around 780 Mbps on a 900 Mbps line, primarily due to IRQ interrupts. However, if I disable either PPPoE or QoS, I’m able to fully saturate my link without any issues.

I just re-read the blog post. I must have missed this part: “IPFire employs Quality of Service on all interfaces all of the time.”

I did not realize this, and was why I was confused. I assumed if you enabled QoS in the UI, it was being used. If you left it disabled, it was not used at all.

So, does this mean that when sending packets to your ISP or downloading packets from your ISP, fq_codel will be used? And any other packet transfers within IPFire or LAN-to-LAN will use CAKE?

Yes, PPPoE is hideously slow because it can’t take advantage of multiple CPU cores.

Everything is using CAKE until Core Update 188 when we have changed back for everything to use fq_codel., unless you have configured the QoS on the web UI. Then we would use CAKE again.

1 Like

When you say “configured the QoS on the web UI” do you mean setting down/uplink speeds and turning it on, or customizing the Classes, or some other customization beyond the default ON setting?

Just turning it on will change to CAKE.

CAKE is great by the way :slight_smile: It just needs a little bit of CPU time to do its magic and that is not a problem at all for 98% of IPFire users. I don’t want it to get a bad reputation.

1 Like

I agree. It does wonders at our workplace in a high density, low bandwidth network. I also use it at home in a high bandwidth, low density environment, mostly because I like to see the bandwidth types segregated on the graph and I like to get A+ scores on bufferbloat test sites. :rofl:

Just the other night, my son was downloading a 90GB game at full line speed while my wife and I were watching streaming TV, and the gateway graph was completely unaffected.