Poor performance from SQM at 350mbps (WRT3200ACM)

The cable modem is 6-7 years old, I believe it's DOCSIS 3.0, but it might be 3.1 I'll check.

It's conceivable that for some hardware, the 3.1 standard is achievable just with a firmware upgrade, so it might have been rolled out to you without your knowing it :wink:

In any case, if you can play a games + do VOIP over your link, and uploading or downloading a large file doesn't completely knock that offline, then someone somewhere in your link is doing queue management, whether it's at the head-end or in your modem, it is being done. Without some kind of smart queue management, it's trivially easy to get hundreds of ms of latency (totally destroys VOIP or games) and even not that hard to get thousands of ms of latency particularly on slowish DSL links with stupid vendor firmware.

@supersebbo persebbo
Out of curiosity more than anything else; what are the reasons for running SQM?

Is this a business where VOIP is paramount or something similar?

Thanks,

Thanks for the feedback and the theories. I actually think it is not processor related - AFAIK htop reports each core seperately - here is a screenshot during speedtest:

image

It seems to be spreading the load evenly between the cores. Unless there is something jazzy going on with the way htop is reporting CPUs.

Actually just because I was noticing with background downloads running regualar browsing was becomming very sluggish. I was getting 800ms plus latency.

Queuing doesn't use multiple CPUs much, but it also isn't pinned to one CPU, so it may bounce back and forth. You really need a better breakdown. Fortunately we're working on speed testing, perhaps you can be a guinea pig. First off set your speed such that cake does in fact work well, perhaps 200 Mbps or whatever. Then run our test script, and do a speed test.

Test script is here, version modified by @moeller0

I will get onto this at some point this evening. Is the script likely to reveal any sensitive data?

Will enabling flow offloading improve the performance a bit?
uci set firewall.@defaults[0].flow_offloading=1
uci commit && reboot

The script collects CPU usage and interface transfer quantity stats. It requires a high res timer so the full version of the "sleep" utility.

We don't yet have a real data analysis scheme going, but having real world data will help us develop it.

While I would not call AQM/QoS-management "crap", I fully agree that if one's link has no bufferbloat issues and performs as desired than nothing needsto be done. Personally I have not been lucky enough in the last 8 years though ;).

Bufferbloat is also an issue that mainly rears its ugly head once your traffic (transiently) exceeds your available bandwidth, so without heavy users like family members or file-sharing applications running in the background you might simply never exceed your 250/50 (long enough) to notice/care. As stated above in that case doing nothing sounds like a very pragmatic approach :wink:

Have a look your self, we aimed to keep the scripts human-readable (or rather we aim, I believe this not necessarily the final script) and we tried to keep things pretty basic to minimize the risk to leak sensitive data. That said, obviously CPU usage is a potential signaling pathway to exfiltrate data from a machine, but for that to be relevant sqm-script (or rather the kernel modules it exercises) would already need to be backdoored. And at that point it the horse has long left the barn/stable...

I want to add we also need coreutils-date as that will report time in nano seconds, busybox time's resolution is simply not good enough for our purpose. (Micro-spikes in CPU-usage can certainly make a shaper unhappy, while not showing up if one uses to long an sampling period for the instrumentation).

We should add checks in that script for the required sleep + date and then output a message if they're not installed. I'll put a comment in my current git version to do that properly. Hopefully I can get some time towards the end of next week to improve things and do some basic analysis now that I have JSON output.

Got the output for you.. it's too big for Pastebin.. any suggestions on where to host?

If you can zip it and drop it in this google drive folder that'd be great: https://drive.google.com/drive/folders/1v_S3oFhLEIq49ShKMxjZkgvBQK8IP9ko?usp=sharing

It will be open for write until I see the file appear, and then will be read only.

OK - it's done, thanks.

awesome, thanks for donating some real world data. Follow the results of our efforts in the other thread, things making slow progress, eventually we'll request people to donate a bunch of data once we're ready to go

i would also like to think it can, but does it work with sqm?
also looks like it still needs some work in general

would you care to measure?

It was a suggestion to the topic starter :slight_smile:
Yes software flow offload doesn't bypass qdiscs, so it should help