Awful SQM performance on GeForce NOW

FWIW, my son will only game on a wired connection. Stick with that if you can. Hopefully, some SQM tunning will help to reduce the 50ms spikes you currently observed over wired - others (already posting in your thread) are better able to help you with that.

Your speed test results over wifi look similar to what I get on wifi (totaly different device which is why this got my attention). For lack of a better description I call it throughput jitter - rapid changes in (download) throughput. I suspect this may be related to have multiple devices on your wifi network (i.e. try testing with only one device connected and in the absence of interference from other AP's if possible).

If i force my wifi clients to lower throughput (say 200-400+mbps down to 50 mbps by using a tbf qdisc on the client) I can eliminate the "jitter" but the way i do that is not a solution.

The short of it is stay off wifi for gaming for now if you can.

1 Like

Your wired results from DSL reports look reasonably good to me. Latency is not a fixed number, it's a probability distribution. I personally would not call 50ms a spike, but then again when I had DSL service, my upload latency was borderline unusable (1000+ ms average) without CAKE.

At the time, my DSL modem showed an upload line rate of ~2.3 Mbps, but my fastest speed test results were ~1.8 Mbps. I achieved best upload latency with CAKE set at 1.65 Mbps. Going from memory, that got my average latency down to the 40-60 ms range. I could video conference fine even at this slow upload rate thanks to CAKE.

1 Like

For dslreport, please post a link to the detailed results, that is both quicker to grasp and more informative than a video...

From your shaper settings you can expect at best:

69.696 * ((1500-8-20-20)/(1500+34)) = 65.97 Mbps
6.969 * ((1500-8-20-20)/(1500+34)) = 6.60 Mbps

Based on your results I would assume that 60/6 Mbps goodput seems achievable so I would start the iterative optimization by setting the rates to:
62/6 resulting in a theoretical maximal speedtest throughput of:
60 * ((1500-8-20-20)/(1500+34)) = 56.79 Mbps
6 * ((1500-8-20-20)/(1500+34)) = 5.68 Mbps

BUT, if you are actually prepared to iteratively test and modify the rates, I would start out with 30/4, and then first optimize the upload with a "binary search":
test 30/4 and 30/8, if 30/8 is crap (as it will be) test 30/6 next, if acceptable test the midpoint between 30/8 and 30/6...
Once you found a decent shaper value for the upload, say 6, keep that fixed an repeat the procedure for the download direction.

1 Like

Or maybe SQM categorizing the connections and limiting the bandwith/speed for such services? I don't know.

I had some devices connected to WiFi, but they were not actively or inactively (background processes) using the internet.

Guess I will have to do some wiring in the house... But the thing is, my former modem router (KN-2410) were really doing great on GeForce NOW even without shaping. I think it has a custom SQM that they call "IntelliQoS." I believe I can achieve same or better results with a bit more of SQM tuning.

Sorry, thought it would be better to show how it does in real-time.

Indeed 60/6 with layer_cake looked good on last Dslreports test.

1 Like

@moeller0 Does this mean if I used layer_cake, that I should also set DO NOT SQUASH and ALLOW for the DSCP settings under "Advanced Configuration" on the SQM "Queue Discipline" tab? Conversely, If I am not using layer_cake, do these settings do nothing?

@tarkan Did you try fq_codel/simple.qos with irqbalance installed and running over WiFi ? I can shape over 200 Mbps on my MT7621 ER-X with fq_code/simple.qos and irqbalance, but only ~100 Mbps with CAKE. I suspect it would free up your CPU quite a bit.

1 Like

WiFi 5GHz (80Mhz)
Config:
60/6
fq_codel/simple.qos with irqbalance up and running with a fresh reboot of device:

Dslreports.com recommended test

Fast.com custom 16/30 thread test

In-game
image
Interesting, I see high jitter on Chrome client of GeForce NOW. Jitter is usually around 1ms and lower when playing on official GeForce NOW app.

I still see ping spikes and GeForce NOW warnings that my connection is not stable. :sob:

These do two things (I might have the order wrong, working from memory):
DO NOT SQUASH: this will keep the DSCPs intact that your ISP passes into your network (short of an SLA with your ISP these are unlikely to be generally sane)
ALLOW: this will actually keep a multi-tier cake/htb enabled on ingress, if you configure IGNORE instead of diffserv4 you will just get a single tier besteffort (exactly like with piece_of_cake.qos).

No, simple.qos will either ise a three tier QoS hierarchy (ALLOW) or a single tier "hierararchy". It will ignore the SQUASH directive, since DSCP remapping is not implemented for HTB+fq_codel (it is one of the nice features cake introduced when looking hard at what is desirable at a typical internet access link).

2 Likes

Maybe it is time to implement per-internal-host isolation? Could be that it is the traffic of other in your network that causes issues? Please post the output of:

  1. cat /etc/config/sqm
  2. ifstatus wan #(make sure to redact sensitive information, say if you have a public static IP address maybe not post that into the forum :wink: )
1 Like

Don't really think so. None of the devices using internet actively or syncing anything in the background.

root@OpenWrt:~# cat /etc/config/sqm

config queue 'eth1'
        option debug_logging '0'
        option verbosity '5'
        option linklayer 'ethernet'
        option overhead '34'
        option interface 'wan'
        option enabled '1'
        option download '60000'
        option upload '6000'
        option qdisc 'fq_codel'
        option script 'simple.qos'

I redacted every single IP. :laughing: Thanks for the notice and of course your interest and time!

root@OpenWrt:~# ifstatus wan
{
        "up": true,
        "pending": false,
        "available": true,
        "autostart": true,
        "dynamic": false,
        "uptime": 230,
        "l3_device": "pppoe-wan",
        "proto": "pppoe",
        "device": "wan",
        "updated": [
                "addresses",
                "routes"
        ],
        "metric": 0,
        "dns_metric": 0,
        "delegation": true,
        "ipv4-address": [
                {
                        "address": "REDACTED",
                        "mask": 32,
                        "ptpaddress": "REDACTED"
                }
        ],
        "ipv6-address": [

        ],
        "ipv6-prefix": [

        ],
        "ipv6-prefix-assignment": [

        ],
        "route": [
                {
                        "target": "0.0.0.0",
                        "mask": 0,
                        "nexthop": "REDACTED",
                        "source": "0.0.0.0/0"
                }
        ],
        "dns-server": [

        ],
        "dns-search": [

        ],
        "neighbors": [

        ],
        "inactive": {
                "ipv4-address": [

                ],
                "ipv6-address": [

                ],
                "route": [

                ],
                "dns-server": [
                        "REDACTED",
                        "REDACTED"
                ],
                "dns-search": [

                ],
                "neighbors": [

                ]
        },
        "data": {

        }
}
root@OpenWrt:~#

Huh? I am not using ETH1 interface anywhere. Why it does show that?

This is just a name that is basically ignored, so no worries.

With that in mind I would use:
option interface 'pppoe-wan'

For internal-IP-fairness you will need to switch to either piece_of_cake.qos/cake or layer_cake.qos/cake

1 Like

Sorry, do you mean that I should change the SQM interface?

Yes. Exactly that!

So I have been doing various tests over WiFi 5GHz, with barely any activity on the network. In the process, I also modified the rates. I think the best option for me is fq_codel, simple.qos for now. Actually, both cake, piece_of_cake.qos and fq_codel, simple.qos give almost-same results ping-wise but it seems like fq_codel, simple.qos is more stable. Guess WiFi hogging the CPU? I will continue to iteratively test queues and modify the rates to find my sweet spot.

I really appreciate everyone for their interest, help and time. It's great to be part of this community!

1 Like

WiFi 5GHz
Switched from PPPoE-WAN to DHCP client mode.
cake: piece.of.cake.qos
70000/7000

Ok, turns out PPPoE/routing was hard on the CPU? What do you say?

Enabled both software and hardware offloading. Problem is now completely solved! Gaming is stable on WiFi 5GHz.

Got the performance and stability boost I needed.

Fortunate that your MT7621 chip is supported for hardware flow offloading.

If you use IPv6, software flow offloading can cause connection instability.

See the 21.02.n release announcements.

1 Like

Yeah, lucky. I saw that and made sure to enable to make use of the chip. And a quick reboot and things got super boosted.

Good to know. All IPv4 here. :white_check_mark: