Yes, I just finished swapping. It's about 8% faster but still about 1/2 what it should be.
Original setup:
WAN = eth1 (USB)
LAN = eth0 (internal)
Average download with SQM = 568 (580,561,562 ran 3x)
Average download without SQM = 907 (908,906 ran 2x)
Reversed setup:
WAN = eth0 (internal)
LAN = eth1 (USB)
Average download with SQM = 615 (622,617,605 ran 3x)
Average download without SQM = 776 (797,754 ran 2x)
It might be due to the fact that I am using VLANs via DSA on this setup. I have to in order to maintain my two networks on the dumb AP (main and guest).
Someone over at the launch RPI4 thread had a similar issue with an asix based dongle. Up next they tried a rtl8153 based dongle, and they could do gigabit speeds in both directions with CPU cycles to spare.
The TPLink UE300 is rtl8153 based (uses kmod-usb-net-rtl8152), see if you can get that one.
See also my RPi4 performance thread, this is exactly the issue. The ASIX driver seems to do a LOT more interrupts than the Realtek, which probably aggregates them.
Sure thing, disclaimer, I'm using @ldir SQM's Netify experimental branch. All my devices are connected by WiFi and DSCP marking aligns the best possible with WMM. divserv4 is utilised in my script.
My eth1 is a U300 USB NIC connected to my WAN (1000/50 Mbps). eth0 is internal NIC connected to my NanoHD.
Steering and irqbalance are active, no VLAN are defined and RPi4 is overclocked to 2 Ghz.
What I meant is that I'm not using simply piece_of_cake, that's why I included the "disclaimer" for. I apologise for making it more confusing, I'll go back to my lockdown cave now.
Ah thanks. Are those within the sqm-scripts-extra package or something you add manually? What does it offer vs cake/piece_of_cake to the average user wanting to control upstream bufferbloat? You mentioned something about alignment with WMM and some other stuff.
I didn't know about sqm-scripts-extra. This offers you flexibility to tag packets to specific priority buckets: Background, Best Effort, Video and Voice. In my household with home schooling and working from home due to constant COVID lockdowns this is very relevant. Is not easy to manage people gaming, streaming and video conferencing in parallel. This work from @ldir makes it easy. Netify helps identifying the different types of streams on the fly, works well enough, not perfect, tho'.
When I referred to WMM, I meant that I'm tagging packets aligning DSCP with WMM, so this works as best as possible over WiFi too.
The packet tagging and WMM and such are all very interesting etc, but will not be factors related to how much CPU usage there is really. The issue is the use of an ASIX dongle because those drivers seem to cause a lot more interrupt handling. A simple fix is to replace with the UE300 from TP-Link for ~$15 it cuts interrupt overhead by a factor of 10 or more.
Are you running irqbalance? Because that may help a lot. I can not only shape a gigabit, but I can do it over a squid proxy at the native clock freq. So there should be a lot of headroom on this device.
It's strange because I managed to shape a gigabit with something like 10-15% of one core in the test thread. Now I was using hfsc but I don't expect cake to be 10x as cpu intense
There seems to be a regression in SQM performance lately:
I guess this will get fixed at some point, but in the meantime you can try an older version of sqm-scripts as cited, that should get you results more in line with @dlakelan's
If you do, please try to incrementally add the 3 commits between Dec 2020 and Feb 28 2021 to see which of these innocent looking changes is responsible for the observed CPU load.