What's new

FlexQoS FlexQoS 1.2.5 - Flexible QoS Enhancement Script for Adaptive QoS

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

Seems to be some sort of weird bug with QoS and Steam. For some reason, even when functioning well under cap it causes all sorts of latency issues and throttling among other programs while downloading. It doesn't do this with any other downloads or uploads. I have to manually set steam to 50%, even then it causes issues among other things happening on the network. Anyone have any ideas? Origin works fine, speed tests work absolutely fine, running OBS normally works perfectly fine, but when a steam download starts it wreaks havoc on the network, even under cap. If I turn off QoS and run manually with the built in Steam throttle the network functions normally.
 
Back when I used Tomato QOS, I traffic shaped Steam by taking their entire IP range and shaping ports 80 and 443 after 512KB of transfer. Turns out Steam downloads are typically HTTP - so they could get confused with regular web traffic and drop into a higher category than expected. Unless AdaptiveQOS has figured out a better way to detect and classify, they may be doing roughly the same thing as I did.

The main problems with this method:
1) The first 512KB are still Web-High priority. There will be a slight ping jolt as new downloads start unless you shape that category properly too.
2) Many games (like Guildwars) use HTTP for game traffic. It unfortunately also gets deprioritized along with the downloads.
3) IP ranges change over time. It's not guaranteed to stay effective even if you do get it working.

In my opinion all programs should use specific ports for specific tasks, and document it so that our lives are that much easier.
 
I looked at the classification of the Steam connections and it looks like it was getting categorized appropriately. What I did notice however is comparatively Steam seems to open and close a ton of connections while it's downloading. Basically it looks like it functions a lot like a torrent, only with more chaos. It's pretty interesting if you open it up in resource monitor and watch it. I think there might be some sort of weird bottleneck that's happening in the background due to the overhead this imposes. I can run download tests fine, Origin, you name it, it's just steam.

CPU utilization on the router while this is happening is much higher then a normal test or just torrents too.
 
That doesn't surprise me. They use a repository system, except more granular than what Linux typically uses. Your average game might have hundreds of repo entries, for different components and different versions. I don't think they torrent specifically, but they do spread the connection load around. They also download a lot off-peak... my download schedule is almost always between 3 to 7AM, which I assume it selected because 1) My PC is left running, 2) I'm not using my computer then, 3) North Americans aren't using Steam servers much then.

May I ask what router you have? I specifically bought mine for the powerful CPU, as I have found on weaker CPUs there is a long delay before categorization was applied. I typically leave torrents going 24/7, and have hundreds or thousands of connections established at any one time. Without a very fast CPU, forming new connections does get quite slow and laggy.
 
This is an ignorant question, but do I need FlexQoS if I upgrade my speeds to 1.2 Gbps down / 35 Mbps Up ? I may upgrade to comcast (xfinity) gigabit speeds. I'll be using a CM2000 modem with my RT-AX86U router.
 
You get 42 Mbps (after 20% overprovision) upload. If you come close to using that and want to control how the bandwidth is made available to various things (e.g. Video Chat, Online Backup etc...) then yes.
On the download side it's not very likely you will notice a big difference unless you download massive large games etc... all the time
 
How many people are at your home? What do you do with your connection? That speed is very lopsided, so I lean towards "yes" if you are a moderately heavy user. But that said, the answer could also be "no" if you don't abuse your internet much, and/or have no other users present.

Here is an example - someone wants to open a website, but you have got torrents and a YouTube upload going, strangling the upstream. (Or DropBox! Or Google Drive!) Everything is slow and laggy and pages take 40 seconds to load on 1.2gbit. Shaping the upstream so that web traffic is higher priority allows requests for website data to go out more promptly on your 4 lane highway, and then return on your 120 lane incoming superhighway.

Some services and programs allow you to set speed limits. qBittorrent does, for example - you can set it to 70%. Dropbox is the same. This is great for a single user, but what if someone else runs something that consumes 70%? 70%+70% = 140%. Now you're back to being maxed out, redline, 100% for long periods of time, strangling other connections. QOS is the solution to this.

I personally would set the incoming speed (downstream) to 100% for every category since you'd have an abundance of that speed. Set the downstream very high, maybe even above your connection speed. You don't want incoming packets being dropped since few if any services can max it out and cause BufferBloat for you.

Fiddle with the outgoing (upstream) on different categories to get the desired traffic shaping effect for upstream. Put categories like Gaming, Web Traffic, Other, Streaming near the top. You definitely want to control what services in your home can do. A fire exit does no good if 40 people try to cram through at once rather than taking turns. The QOS will definitely help when programs like Dropbox, qBittorrent, and many others start hogging upstream. Keeping the smaller but more time critical requests going out promptly and regularly is important to maintaining a responsive feeling internet.

So I vote "yes" - but you could also go for "no" if it's just you, or you don't do much on the internet.
 
That doesn't surprise me. They use a repository system, except more granular than what Linux typically uses. Your average game might have hundreds of repo entries, for different components and different versions. I don't think they torrent specifically, but they do spread the connection load around. They also download a lot off-peak... my download schedule is almost always between 3 to 7AM, which I assume it selected because 1) My PC is left running, 2) I'm not using my computer then, 3) North Americans aren't using Steam servers much then.

May I ask what router you have? I specifically bought mine for the powerful CPU, as I have found on weaker CPUs there is a long delay before categorization was applied. I typically leave torrents going 24/7, and have hundreds or thousands of connections established at any one time. Without a very fast CPU, forming new connections does get quite slow and laggy.
I have a AC86u. Should be plenty fast and works fine with normal torrent loads.
 
I have a AC86u. Should be plenty fast and works fine with normal torrent loads.

Looks plenty fast for most regular workloads and most regular connections. Doesn't that model have AES support too? Hardware accelerated, so not much will slow it down. Probably a beast of a router for any encryption - VPNs, etc.
 
Dave. Someone on my twitter the other day suggested something regarding QoS and FIFA.
I have re read his suggestions but its clear half of it is way out of my zone...probably more tbh.

I said I would ask someone with knowledge and mentioned you.
I hope you can make sense of this lol.

Context was we were talking about me setting my Mikrotik switch LAN ports to 100 for the asus link and the console link...and gameplay was consistently better.
The guy chipped in with these comments...

"I've already tested these settings a while ago. I have a mikrotik RB760igs. Flow control gets worse because it slows down the delivery of packets. Physical limitation /100 on the network card is only temporary.

Try to equalize something about qos bfifo around 128000 bytes with low priorities and equalizing the total flow of the mother queue with the same value as well.

A big problem with the qos queues are the sizes. automatically the packets that don't fit there are discarded, so it's a good idea to set the packet size to a size used by the game at equal sizes with no queue limit. What has worked for me is the bfifo.

mark the udps packages in the mangle. Generate a 5mb up and 10mb qos only with udp pointing the mangle's marked packages to that qos. And use bfifo to line up for correct sizes. Going up to division 3 here. Feel free to send a direct message."

Now fifa's udp packet sizes are between 80-120...maybe a little more on certain udp packets.

I know you gave me instructions once on burst rates but this is different ??
 
Not really. Seems rather unintelligible to me. He may know what he’s talking about, but I don’t understand it.

I’d like to see someone (besides me) adapt this script for Merlin:
I apologize @dave14305 but I don't speak/understand Greek. I wish I could be of any assistance :(

Maybe someone can help further
 
@dave14305 do you still recommend all default on the device priority tap or does it make any differenc if i say, lets make the gaming device the highest and the rest to the lowest priority?
 
Last edited:
@dave14305 do you still recommend all default on the device priority tap or does it make any differenc if i say, lets make the gaming device the highest and the rest to the lowest priority?
I don’t really recommend any setting for device priority. I think it is a feature that has no impact on the Adaptive QoS rules. If it has any impact, I never found it. That’s why I was willing to destroy the default htb classes for devices and replace that additional set of htb qdiscs with fq_codel.

You can experiment if you like by switching from fq_codel to ASUS in the FlexQoS options and seeing if you notice any change in behavior.
 
so with fq_codel its deactivated in the menue or does it still changes something ^^
 
so with fq_codel its deactivated in the menue or does it still changes something ^^
Changing the device priorities on Bandwidth Monitor tab would at least require you to switch the FlexQoS mode back to ASUS. I don’t know if this is the exact question you’re asking, but it’s the one I feel like answering. ;)
 
jea sry for my bad english :D you know in austria we dont speak very often english :D ^^ but jea this was my question.

so if i am on the flexqos mode on fq_codel it doestn matter what priority i set in the bandwidth Monitor because it dont work with flexqos.
 
Seems to be some sort of weird bug with QoS and Steam. For some reason, even when functioning well under cap it causes all sorts of latency issues and throttling among other programs while downloading. It doesn't do this with any other downloads or uploads. I have to manually set steam to 50%, even then it causes issues among other things happening on the network. Anyone have any ideas? Origin works fine, speed tests work absolutely fine, running OBS normally works perfectly fine, but when a steam download starts it wreaks havoc on the network, even under cap. If I turn off QoS and run manually with the built in Steam throttle the network functions normally.
I want to point out I found another scenario in which this happens. It seems the google built in speed test causes issues as well, for some weird reason. Other speed tests don't seem to have a issue, but the google one causes latency issues and hiccups with QoS. This is in addition to Steam. This only happens with the download, not the upload.
 
I want to point out I found another scenario in which this happens. It seems the google built in speed test causes issues as well, for some weird reason. Other speed tests don't seem to have a issue, but the google one causes latency issues and hiccups with QoS. This is in addition to Steam. This only happens with the download, not the upload.
Just tossing this out there as an idea:

I noticed on my RT-AC3200, certain traffic would spike the CPU on both cores to 100%. At my new place I upgraded to an RT-AX56U, which is handling weird loads much better - but the AC3200 would have individual connections slow down, even though I could mostly still utilize my whole connection.

AC3200 - BCM4709 @ 1 GHz dual core
AX56U - BCM6755 @ 1.5 GHz, quad core
AC86U - BCM4906 @ 1.8 GHz dual core (newest arch)

In the back of my mind, I was pondering over the TrendMicro filtering engine. It's a binary blob. It has weird things like classifying the same traffic several times to different categories. We have no idea what the source code is like, but what if what started out as some engineer's lean and mean dream project, has morphed into some monstrous codebase that is impossible to maintain, and new coders are just slowly strapping things onto it as they figure out how? What if these odd lag inducing moments are parts of the code that are incredibly inefficient, and are hogging one or two cores from the router, for an undetermined amount of time? Is there a way to log how much CPU time that part of the router is taking up?

Back in the WinXP days, it was pretty common for some program to hog 100% of a core for no reason, back when programmers were new to multi-threading. Even if they have the skills, programmers frequently make mistakes, especially when they don't have a clear picture of the whole codebase or all the target devices.

If we add in that Origin might have a defined IP range and ports for downloads, and we know that Steam mixes it up a lot (the whole IP range pretty much can be for game traffic, bulk downloads, community features and communications, etc. - and individual games may even use HTTP or HTTPS for game data, rather than using their own proprietary UDP protocols, so you can't even filter downloads vs game data by watching ports and counting traffic.), then it just seems like Steam might possibly require more intense code to properly filter the connections and traffic into the desired categories.


Just a theory, with no evidence to back it up, but some coding experience. What do you think? Is there a way to test/monitor/log resource usage at the sub-second level to find out what is going on? I am not the biggest linux guru, but I know there's a pile of people here with much greater experience.

This really shows the benefit of projects like Cake - lots of open source code to look at. :) More eyes often spots more bugs.
 

Latest threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top