WAN throughput drop with cake after updating to 21.02

I recently upgraded my APU4 router from 19.07 to 21.02 (21.02.1) keeping my existing configuration which was using SQM with cake/piece_of_cake.qos.

After the upgrade I have noticed WAN throughput to be considerably lower, specially for download. I have a 500/500 Mbps fiber line and and previously on 19.07, I was getting throughput up to 480/480 MBps and low latency under load (measured with dslreports). Now with 21.02 and my original settings I saw around ~320 MBps for download and ~400 Mbps for upload. Looking at metrics, it seems I am CPU constrained which was surprising for the hardware I have and that it was working better with 19.07.

I have tried to look for settings that would allow me to keep using SQM and get a more decent throughput. I have been able to achieve consistent 450/450 with low latency using fq_codel/simplest.qos and setting the CPU scaling governor to performance. But going back to cake keeps resulting in degraded throughput.

Is this a regression in 21.02? Or am I missing some configuration that was not necessary on 19.07. I would greatly appreciate any help or guidance provided to try to get to the bottom of this discrepancy.

Thank you!

DSLReports test is badly broken.

Try Waveform...

I recently switched from cake and piece_of_cake to fq_codel and simplest_tbf.

Egress and ingress shaped at 98% of advertised, and Per Packet Overhead set to 18.

I recently did some testing on 19.07.8 and 21.02.1

Results are interesting...

1 Like

DSLReports test is badly broken.

Try Waveform...

I have tried Waveform, fast.com, speedtest.com. They all report the similar throughput differences between SQM, no SQM and 19.07 across the board.

Thanks for the link to your post. I believe I am experiencing the same issue. Wondering if it’s worth just downgrading.

Have a look at the packet_steering option, you might want to toggle that from its default position and see whether that improves things.
I am not 100% sure but I have a hunch that the default might have changed between 19 and 20.

1 Like

Thank you. I am seeing better results when enabling flow_offloading and packet_steering and cake/piece_of_cake.qos enabled. It's less than 19.07 but pretty close.

1 Like

Makes sense, I believe 19 defaulted to activate packet_steering on multi-core routers, while 20 defaults to inactive packet_steering. The cause, IIRC, is that packet_steering is a mixed bag that for some routers helps and for other it degrades, so what ever is picked will not be perfect for everybody, and inactive seems generally safer (not sure when that capability was introduced in the first place). Maybe @nbd can give an authoritative answer? Please?

1 Like

the interesting one, but it amounts to device dependent

1 Like

I think that was a patch I vaguely remember having seen in the past maybe my half-knowledge was originally seeded by that.

1 Like

Hmmm... does the software flow offloading work w SQM nowadays? It used to completely prevent it from working, IIRC, long ago. Or was that hardware offloading?

I have been chasing what seems to be performance issues on my x86 box, cant get close to my 940/35 link speeds. It shouldnt have much trouble w a Gb. Still trying to figure that out, and seem to have some confounding issues with my test setup. (Why does my I5 laptop get maxed to 100% while doing a 1gb eth Waveform test of the 940mbit link?) That's another thread...

It does seem something slowed down/got more CPU costly recently, in cake/SQM or elsewhere, as many others seem to be seeing. Wonder if it's just this packet steering issue, or more? Irqbalance and the packet steering are making some difference (gotta remember to edit the config to enable iirqbalance!) but for me it's not a huge one.

According to some threads I found on the forum Software Flow Offloading should still work with SQM and provide gains. Which I have observed in my case, bufferbloat latency is is better with SQM And Software Flow Oflloading, than explicitly disabling SQM.

Other things that I have done that I think had an effect:

  • Enable irqbalance.
  • Enable Packet Steering.
  • Change CPU frequency scaling to ensure that the CPU is not throttled down unnecessarily.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.