QoSmate: (Yet Another) Quality of Service Tool for OpenWrt

unfortunately still crashed.

update, restarted, kept my eye on the number of connections, it was around 750... and after starting a torrent it didn't update anymore, dropped to 0 and ui crashed again.

Schrodinger's tab

I am using a Supermicro X10SDV-4C-TLN2F, did two quick tests, and the first time it crashed the counter showed 1825 and second time 2319, and i have to run /etc/init.d/rpcd restart afterwards to be able to log in to the UI again.

The Connections tab under Realtime Graphs also crashes when starting to go above 3000 connections, not sure if this is related, but that counter showing around 1500 connections and going to the connection tab in Qosmate will crash it.
When it crashes under Realtime Graphs i can just refresh and enter password to get into the UI again.

How many connections?

updated post with details,

it kept the same amount of connections and a few moments later it dropped to 0

@Hudra I sent another PR for qosmate.sh optimization. This PR also affects how tc filters are created. The code needs review and testing because I might have missed something.

@bobbenheim @SaberJ2X

Since the previous attempts unfortunately didn't bring 100% success, I've now implemented a more fundamental solution:

What was done:

  • There's a new config option MAX_CONNECTIONS in advanced Settings

  • Backend now limits the number of connections read from /proc/net/nf_conntrack

  • Frontend has a dropdown (10, 50, 100, 500, 1000, 2000, 5000, Unlimited)

  • Warning is displayed when connections are limited

How it works:

Although not the prettiest approach but instead of reading and parsing all 1000-3000+ connections, the system stops after X lines. This reduces I/O load and prevents overloading the rpcd service.

Disadvantages:

  • When limiting is active, not all connections may be displayed

  • The first X connections from the conntrack table are read (in kernel order, not prioritized by importance). Important connections appearing later in the conntrack table might be missed.

Please test:

Switch to the snapshot update channel and test the changes. You'll find the config option in Advanced Settings. Start with a lower limit (e.g., 500) and see if the UI remains stable.

Make sure you cleared your browser cache and restarted the browser

Feedback would be great.

1 Like

I’ll take a look at it as soon as I have time and get back to you. Thanks!

1 Like

realistically who can keep an eye on 1000+ connections.

other idea would be to ignore anything CS0 before sending it to the ui?

given the choice, I wouldn't find filtering stuff by tiers

more priority than CS0
CS0 - which I would turn off
bulk/CS1 - which I would turn off too

Updated to current version:

Backend versions:
  Update channel: snapshot
  Current version: af644066ddfd9b2d9a94893b76fceb1a1577f680
  Latest version: af644066ddfd9b2d9a94893b76fceb1a1577f680
Frontend versions:
  Update channel: snapshot
  Current version: f932b3f48dc1955d5a7f19b00be5b856406386ea
  Latest version: f932b3f48dc1955d5a7f19b00be5b856406386ea

I am not seeing the MAX_CONNECTIONS in advanced Settings after clearing cache and restarting browser.

This is not the point...

If you have 5000 connections but only display the first 1000 of them and the connections in conntrack on OpenWrt aren’t sorted in any meaningful way, it can happen that the very connections you went into the connections uI to look for are simply filtered out.

So, the problem isn’t simply whether we display 1000 or 5000 connections... the real problem is that important connections can be missing from the list. The new config setting is a compromise, because it at least doesn't crash your ui.

You first need to figure out which connection has 0 bytes or perhaps a certain DSCP value, like CS0. To do that, you first have to load the entire conntrack table and then you run right back into the same problem.

Many people also use the connections ui to find connections that, for example, are not yet marked (i.e., have CS0) and that they want to mark, or to look for specific ports that certain connections are using. But in your scenario, all of these connections would be filtered out which doesn’t make sense either.

As you can see, the issue is not as straightforward as it might seem.

edit: did you try the new setting?

1 Like

Sorry, I may have phrased that a bit poorly. The setting is under “Advanced” in the config (not in the Advanced Tab) and you can simply change the settings in the “connections ui.”

Thank you for new update.

Wondering why hit detection feels much better amazingly when I use NETAM as game discipline and Cake as non-game discipline. With 0 ms NETAM delay (in HFSC)

I have set hybrid in first main page with 400/400 mbps shape

Any reason behind this?

it's working if I limit it to 2000 connections :slight_smile:

if I set it to 5000 it died, but this is a perfect solution for my use case

1 Like

No, doesn’t really make much sense to me as there sure are better game qdiscs but if it works for you, then that’s perfectly fine.

Nice, thanks for testing!

1 Like

Seeing the same, 2k works and 5k instantly crashes.

1 Like

@Hudra I dont know what the issue is but i think all the qdiscs are breaking my connection now after having my line reset. My internet wont work until i disable qosmate now :frowning:

Can you show the output of:

service qosmate status

and

service qosmate restart

when qosmate is active…

It is funny that good and stable qos is opposed to nowaday's online lag compensations.
I have ping of 3 in delta force and been getting instamelt by people with bad / unoptimized internet.

Solution: just use NETAM as main gaming queue disipline.
add 13 pings and 1 jitter. LMAO while using FQ_Codel for non-game queue disipline

It is a sad truth.