Comments (7)
Well, we tried it on a busy pre-wireless-n network... and it was awful. So making the idea available for further testing makes sense, but the default where htb autoscales these quantities should remain the default.
from libreqos.
Hey Dave. Thank you for bringing this up and providing a possible solution. I will go ahead and test this in production as soon as I can. Thanks!
from libreqos.
from libreqos.
This is after the change. I forgot to run one before the change. But it appears to be working very well in terms of bloat.
from libreqos.
It looks like a modest win. (in the future, it helps to title the plots -t the_options_under_test) So could you change the code to
allow the BURST and CBURST variables to be set by in the config, defaulting to 3028, then set the classes to use those (instead of what I hard coded above) in the code and point users in the script at this github issue?
I don't know if that improvement in slow start (reducing the impact of it in the first few seconds) you are showing is to be believed or not, 10 runs, separated by a few seconds, aggregated together might be more revealing. If it's is real, my theory would be it allows for a more accurate tcp rtt estimate in the early phase of the test... and that we should begin considering bigger quantums in cake itself at higher rates.
The problem is that wifi has a limit on "number of packets" as well as "data", and it grows and shrinks relative to your mcs rate, (and a few other variables - see ongoing work at: https://forum.openwrt.org/t/reducing-multiplexing-latencies-still-further-in-wifi/133605/15 ) so at mcs-12 (on n) for example, you could fit in 8k or 20 packets. HTB only allows you to limit dequeuing from a bucket (essentially per customer with cake) by bytes, and then cake switches between flows based on the quantum (which is also in bytes). Anyway - for a base config - 3028 seems like a good compromise value - two big tcp packets, or a mix of a tcp and other packets, or a bunch of acks... it saves on cpu, it mimics real world tcp senders...
ac (and later) lets you send 4MB! and 96 (or more I forget) packets in a single burst. (I would in general prefer wifi just adopt fq_codel for wifi directly, per station queuing, atf, etc....)
from libreqos.
Thank you for letting me know! Also sorry for delayed response - got COVID and was out of commission for a while.
from libreqos.
man tc-htb shows:
burst bytes
Amount of bytes that can be burst at ceil speed, in excess of
the configured rate. Should be at least as high as the highest
burst of all children.
cburst bytes
Amount of bytes that can be burst at 'infinite' speed, in other
words, as fast as the interface can transmit them. For perfect
evening out, should be equal to at most one average packet.
Should be at least as high as the highest cburst of all chil‐
dren.
quantum bytes
Number of bytes to serve from this class before the scheduler
moves to the next class. Default value is rate divided by the
qdisc r2q parameter. If specified, r2q is ignored.
I think it could be set globally not per ShapedDevices.csv row.
Tuning burst speed values is very important for small tariffs <20Mbits in aspects of website loading and some speedtests ;-)
from libreqos.
Related Issues (20)
- Differentiate Sites, APs, and Subs in child nodes
- network.pdf(.pdf?) presented in UI
- Web UI config network interface name mismatch
- Graphs tools hide selection (1.4)
- req: add individual usage to queue tree view
- req: allow changing node limits in UI
- Last 5 minutes resets when navigating between pages. Request to change that. HOT 1
- lqos_node_manager fails to display some circuits in tree view
- UISP Integration - overwrite Network.json by default on integration reload, offer toggle to disable HOT 1
- UISP Integration Bug - Sites branched off PtMP Access Points HOT 3
- UISP integration using link with less capacity HOT 1
- Better handling of missing/low capacity info in UISP (and other?) integration HOT 3
- Named instances HOT 2
- Traffic not shaping HOT 6
- UISP Timeouts HOT 3
- UISP Integration issue with LibreQOS HOT 11
- graphInfluxDB.py negative bytes? HOT 1
- Splynx Topology Mapping
- uisp integration bug: excluded site's devices are not excluded (deb/rc8)
- Exclude certain specified IPs from RTT tracking (UISP) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libreqos.