lynxthecat / cake-autorate

Eliminate the excess latency and jitter terrorizing your 4G, 5G, LTE, Starlink or other variable rate connection!
https://www.bufferbloat.net
GNU General Public License v2.0
298 stars 25 forks source link

Field Report for cake-autorate 3.0.0 on Archer C7 #228

Open richb-hanover opened 1 year ago

richb-hanover commented 1 year ago

Using cake-autorate 3.0.0 on Archer C7 running OpenWrt 22.03.5.

I then edited config.primary.sh to set the interface names and speeds (ifb4eth0.2 and eth0.2 for DL and UL on Archer C7) Results:

a) I ran the script manually (./cake-autorate.sh) and saw it used 100% of the CPU according to htop running in a separate window with an idle link.

b) I turned off logging (output_processing_stats, output_load_stats, output_reflector_stats, debug set to zero; output_cake_changes set to 1) and still saw 100% CPU use with an idle link

c) I dropped reflector_ping_interval_s to 1.0, and the CPU utilization sat around 30-40% with an idle link. When I ran a speed test (speedtest.net over my 75/75 mbps fiber uplink), CPU jumped to 100%. The test results showed most of expected speed.

d) I stopped cake-autorate. CPU dropped to 5-8%. I re-ran the speedtest, and with SQM/cake enabled, CPU jumped to 100%

e) I turned off SQM on the interface and re-ran the speedtest. CPU still jumped to 100%, however I think the speedtest showed slightly higher speeds.

f) I did not attempt to fine-tune any latency measurements - I don't think the Archer C7 is suitable for cake-autorate.

TL;DR:

  1. An Archer C7 is just a wimpy router by today's standards.
  2. I think I may have measured wrong in my report of a couple months ago. The default settings of cake-autorate seem to use 100% of the CPU on the Archer C7. Even after turning off most logging output, it presents a heavy CPU load.
  3. Dropping the cake-autorate ping_interval helps with base CPU usage when not transferring data
  4. Sending/receiving data at 75mbps seems to use 100% of the CPU, even with cake-autorate and SQM turned off.
  5. To do: The v3.0 branch instructions should point to its own branch, not "master"

Thanks, and congratulations!

bairhys commented 1 year ago

I have an Archer C7 and only use it as an access point to increase coverage due to weak cpu. For my wan, I use a Belkin RT3200/Linksys E8450 with cake-autorate. My cake-autorate settings are standard except for using tsping. On a 80Mbps dl, cpu is between 50-75%. Idles at about 25%. I haven't compared routers lately but I think a Belkin RT3200/Linksys E8450 would work great on your 75/75 mbps connection. Wifi performance is great too.

bairhys commented 1 year ago

Here's my Belkin RT3200 load stats over a few days. At the end, can see where cake-autorate wasn't running due to a config error.

image

lynxthecat commented 1 year ago

@richb-hanover thanks a lot for your detailed and helpful report. It seems that cake-autorate can be made to run on an Archer C7, but since even cake on its own saturates the CPU at sub-100Mbits/s, anyone in this position may want to upgrade to a newer router like the RT3200.

And @bairhys whilst the CPU use is appreciable, what's encouraging about your helpful load graph is that it's always comfortably below 2.0 using the two-core RT3200.

@rany2 the link in the installation instructions for installing v3.0.0 is still master:

https://github.com/lynxthecat/cake-autorate/blob/v3.0/INSTALLATION.md

Best way to fix this?

richb-hanover commented 1 year ago

@lynxthecat @bairhys Thanks for the comments. I only posted the Archer C7 results because I mentioned its (poor) performance with earlier versions of cake-autorate. I believe that cake-autorate is now optimized as much as makes sense.

I currently use a D-Link DIR-878 (for my WAN). I guess I'll have to install cake-autorate on it and create another field report. And then I should install the Belkin RT3200 that I have waiting in the wings.

Thanks.

rany2 commented 1 year ago

@richb-hanover thanks a lot for your detailed and helpful report. It seems that cake-autorate can be made to run on an Archer C7, but since even cake on its own saturates the CPU at sub-100Mbits/s, anyone in this position may want to upgrade to a newer router like the RT3200.

And @bairhys whilst the CPU use is appreciable, what's encouraging about your helpful load graph is that it's always comfortably below 2.0 using the two-core RT3200.

@rany2 the link in the installation instructions for installing v3.0.0 is still master:

https://github.com/lynxthecat/cake-autorate/blob/v3.0/INSTALLATION.md

Best way to fix this?

I've released 3.0.1 to address this.

rany2 commented 1 year ago

I'll make a script to automate this task. The current way of making releases is too error-prone.

lynxthecat commented 1 year ago

Thanks @rany2. By the way what would you recommend as the best way to install v3.0.1? I need to provide installation instructions to give to @richb-hanover for the forum.

rany2 commented 1 year ago

@lynxthecat

wget -O /tmp/cake-autorate_setup.sh https://raw.githubusercontent.com/lynxthecat/cake-autorate/v3.0/setup.sh
sh /tmp/cake-autorate_setup.sh