Best way to reduce game latency
-
Thank you so much mr tman22, this has solved 50% of my problems… now my question is... how do I set up ts so I can prioritize games over netflix?
-
Are you seeing an issue that you need to use priorities?
-
Are you seeing an issue that you need to use priorities?
even though i can tell bufferbloat is almost gone through dslreports tests, I can still see increased latency when someone is downloading a big file or watching netflix
-
Have you tried further reducing your provisioned bandwidth just to see if it helps? In theory, fq_Codel properly configured should pretty much keep your latency of other flows to within a few milliseconds, except if two flows get assigned to the same bucket.
-
-
Are you seeing an issue that you need to use priorities?
even though i can tell bufferbloat is almost gone through dslreports tests, I can still see increased latency when someone is downloading a big file or watching netflix
There are a few more things you can try before considering moving on to a different scheduling algorithm:
1) As Harvy66 already mentioned, you can try to reduce your bandwidth limits further (especially if your upload/download speeds aren't very stable).
2) To favor interactive flows, try reducing the quantum parameter from the default. Start reading here for more details on how to go about this: https://forum.pfsense.org/index.php?topic=126637.msg769665#msg769665
3) One last thing you could to is create multiple queues under your limiter and assign each of them weights. For instance, let's assume you had two queues under each limiter with weight 50. This would ensure that each queue is guaranteed at least 50% of the bandwidth, and more (up to full) if the other queue does not have any traffic in it. Once you have those queues created, you'd have to create the relevant firewall rules to match your game traffic, assign one set of queues to it, and then assign the other set of queues to your rule that handles the remaining traffic (e.g. web traffic, netflix, etc.). This is a little bit more tricky to setup, so I would recommend trying 1) and 2) first.Hope this helps.
-
thank you so much for helping me… I will be trying all of these options and will let you know how it went =)
-
Are you seeing an issue that you need to use priorities?
even though i can tell bufferbloat is almost gone through dslreports tests, I can still see increased latency when someone is downloading a big file or watching netflix
3) One last thing you could to is create multiple queues under your limiter and assign each of them weights. For instance, let's assume you had two queues under each limiter with weight 50. This would ensure that each queue is guaranteed at least 50% of the bandwidth, and more (up to full) if the other queue does not have any traffic in it. Once you have those queues created, you'd have to create the relevant firewall rules to match your game traffic, assign one set of queues to it, and then assign the other set of queues to your rule that handles the remaining traffic (e.g. web traffic, netflix, etc.). This is a little bit more tricky to setup, so I would recommend trying 1) and 2) first.
Can you please give me a hand with this?
Do i create a floating rule for games and assign one of the two 50/50 pipes to it and let the other one in the default LAN rule?
thanks so much mr tman
-
I have similar needs, except I'm trying to make a second set of queues for my twitch stream traffic so that I don't drop RTMP packets but the weight settings don't seem to do anything different. If I stream and do a speedtest, a consistent number of stream packets get dropped. Chances are, I got something misconfigured but it's at least easy for me to reproduce the test to know if I get it working, so if I figure it out I'll chime in because if I did the same with my game traffic, it wouldn't work any differently.
-
I have some "issues" with the download queue. So i'd like to tell you what i have done so far.
I am on PfSense 2.4.2_1 and i have a symetrical 1000Mbit line and DSL reports
image before is attached. And My dsl report looks like this, as expected (image_1…)- Creating Limiters (screenshots attached for the upload Part, for the download part its the same but with a different name)
-
Upload (limited to 900Mbit)
-
highUp 75
-
defaultUp 25
-
lowUp 5
-
Download (limited to 900Mbit)
-
HighDown
-
defaultDown
-
lowDown
-
Creating Floating rules Rules
I created in total 6 Floating rules but only going to show the default ones in the screenshots
the other ones are basically clones anyway -
Installing the shellcmd package and adding
ipfw sched 1 config pipe 1 type fq_codel && ipfw sched 2 config pipe 2 type fq_codel -
horrible results, something is not working right on the download side, dunno what it is :D
I added an imgur album to just take a look at all the screenshots. https://imgur.com/a/bkIuA maybe @tman has an idea what i am doing :(
-
I have some "issues" with the download queue. So i'd like to tell you what i have done so far.
I am on PfSense 2.4.2_1 and i have a symetrical 1000Mbit line and DSL reports
image before is attached. And My dsl report looks like this, as expected (image_1…)- Creating Limiters (screenshots attached for the upload Part, for the download part its the same but with a different name)
-
Upload (limited to 900Mbit)
-
highUp 75
-
defaultUp 25
-
lowUp 5
-
Download (limited to 900Mbit)
-
HighDown
-
defaultDown
-
lowDown
-
Creating Floating rules Rules
I created in total 6 Floating rules but only going to show the default ones in the screenshots
the other ones are basically clones anyway -
Installing the shellcmd package and adding
ipfw sched 1 config pipe 1 type fq_codel && ipfw sched 2 config pipe 2 type fq_codel -
horrible results, something is not working right on the download side, dunno what it is :D
I added an imgur album to just take a look at all the screenshots. https://imgur.com/a/bkIuA maybe @tman has an idea what i am doing :(
I have not set this up with matching floating rules before, but one thing I noticed right away looking at your screenshots is that you are missing the source and destination masks in your upload and download queues.
For each of your download queues, choose "Destination addresses" for the Mask. For each of your upload queues, choose "Source addresses" for the Mask.
Hope this helps.
-
fq_codel is great at reducing latency on its own. Adding complexity by having more queues may actually make it worse. Of course not in relation to the issue you're seeing.
-
stuff
not sure what you mean here, would you mind sending me some screenshots or uploading them here, i thought the floating rules were necessary. I just added for my upload limiters source and for my download limiters destination with the same results :(
-
fq_codel is great at reducing latency on its own. Adding complexity by having more queues may actually make it worse. Of course not in relation to the issue you're seeing.
What would be the easiest setup here? i dont mind not dealing with queues :D
-
stuff
not sure what you mean here, would you mind sending me some screenshots or uploading them here, i thought the floating rules were necessary. I just added for my upload limiters source and for my download limiters destination with the same results :(
Actually the most basic setup requires only an upload and download limiter with one queue under each, and no matching firewall rules.
Here's how you would set that up:
First, remove your existing settings including your matching firewall rules you created for fq_codel.
Next:
1) Create a upload and download limiter and set their bandwidth limits
2) Create one queue under the Upload limiter, i.e. in your case let's call this "in" and make sure the Mask field is set to "Source Addresses". Leave the Weight field empty.
3) Create one queue under the Download limiter, i.e. in your case let's call this "out" and make sure the Mask field is set to "Destination Addresses". Leave the Weight field empty.
4) Next go to your LAN interface and find the rule that allows outbound traffic to the internet (e.g. your default allow all rule). Under that rules' settings, go to Advanced Options, In/Out Pipe.
5) For the In Pipe use the queue you created under the upload limiter, in your case the "in" queue.
6) For the Out Pipe use the queue you created under the download limiter, in your case the "out" queue.
7) Enable fq_codel with this command: ipfw sched 1 config pipe 1 type fq_codel && ipfw sched 2 config pipe 2 type fq_codel
8 ) Speed test and check for buffer bloat.Harvy66 is right that fq_codel is pretty good at reducing latency without having to filter traffic into different queues first and then applying fq_codel. In my case I'm only using multiple weighted queues to control the total amount of bandwidth available to different VLAN's instead of controlling the amount of bandwidth available to different traffic on the same interface/VLAN. That may still be possible to do (e.g. with matching firewall rules), but unfortunately I have don't have any specific experience with such a setup.
Hope this helps.
-
-
I must be doing something wrong.
Try this:
- On the command line issue this command: ipfw pipe flush
- Then go ahead and reset your firewall states.
- Then issue this command on the command line: ipfw sched 1 config pipe 1 type fq_codel && ipfw sched 2 config pipe 2 type fq_codel
- Try another speed test.
What do the results look like now?
Hope this helps.
-
I must be doing something wrong.
Try this:
- On the command line issue this command: ipfw pipe flush
- Then go ahead and reset your firewall states.
- Then issue this command on the command line: ipfw sched 1 config pipe 1 type fq_codel && ipfw sched 2 config pipe 2 type fq_codel
- Try another speed test.
What do the results look like now?
Hope this helps.
First off thank you for helping me! That's really great! Unfortunately this did change the outcome significantely, or at least i get the same result.
Could there be anything else besides the trafficshaper that influences this, whats surprising to me is that the upload part of the speedtest just works flawlessly, no bufferbloat and constant high throughput, its only that the download really is not working well, when i remove the traffic shaper its the opposite ?
-
-
after updating to 2.4.3 no change
Something still seems off here. Do you have any other firewall rules (floating or otherwise) or traffic shaping settings enabled that are impacting traffic coming to or from your LAN and/or WAN? Besides setting up the limiters and queues, are there any other changes you made to try to implement fq_codel that you might have forgotten to undo? Can you provide screenshots again so we can see if anything does not look correct? Also, what happens if you raise the limiters to 930 or 940Mbit? Any difference?
Hope this helps.