At times of high upload throughput on my home connection I face the bufferbloat problem.
Bellow test shows proof of this:
xx@xx:~# speedtest-netperf.sh -H netperf-eu.bufferbloat.net
2021-09-02 20:41:46 Starting speedtest for 60 seconds per transfer session.
Measure speed to netperf-eu.bufferbloat.net (IPv4) while pinging gstatic.com.
Download and upload sessions are sequential, each with 5 simultaneous streams.
............................................................
Download: 53.41 Mbps
Latency: [in msec, 61 pings, 0.00% packet loss]
Min: 13.113
10pct: 13.504
Median: 16.357
Avg: 16.617
90pct: 19.323
Max: 25.374
CPU Load: [in % busy (avg +/- std dev) @ avg frequency, 57 samples]
cpu0: 30.7 +/- 2.0 @ 1459 MHz
cpu1: 22.8 +/- 2.8 @ 1025 MHz
Overhead: [in % used of total CPU available]
netperf: 14.7
.............................................................
Upload: 18.50 Mbps
Latency: [in msec, 62 pings, 0.00% packet loss]
Min: 12.746
10pct: 165.244
Median: 210.922
Avg: 200.306
90pct: 233.306
Max: 239.517
CPU Load: [in % busy (avg +/- std dev) @ avg frequency, 58 samples]
cpu0: 17.0 +/- 4.6 @ 1193 MHz
cpu1: 12.1 +/- 2.3 @ 857 MHz
Overhead: [in % used of total CPU available]
netperf: 1.7
When enabling SQM on the PPPOE-wan interface setting the DSL recommended parameters on the OpenWrt website and that appears to do the trick:
xx@xx:~# speedtest-netperf.sh -H netperf-eu.bufferbloat.net
2021-09-02 20:57:10 Starting speedtest for 60 seconds per transfer session.
Measure speed to netperf-eu.bufferbloat.net (IPv4) while pinging gstatic.com.
Download and upload sessions are sequential, each with 5 simultaneous streams.
............................................................
Download: 52.74 Mbps
Latency: [in msec, 61 pings, 0.00% packet loss]
Min: 13.781
10pct: 14.631
Median: 15.818
Avg: 15.836
90pct: 17.142
Max: 19.760
CPU Load: [in % busy (avg +/- std dev) @ avg frequency, 57 samples]
cpu0: 34.2 +/- 1.9 @ 1712 MHz
cpu1: 27.1 +/- 3.3 @ 1712 MHz
Overhead: [in % used of total CPU available]
netperf: 17.5
.............................................................
Upload: 17.52 Mbps
Latency: [in msec, 61 pings, 0.00% packet loss]
Min: 13.753
10pct: 14.310
Median: 15.237
Avg: 15.882
90pct: 17.165
Max: 29.148
CPU Load: [in % busy (avg +/- std dev) @ avg frequency, 57 samples]
cpu0: 18.5 +/- 2.5 @ 1209 MHz
cpu1: 14.0 +/- 3.1 @ 991 MHz
Overhead: [in % used of total CPU available]
netperf: 2.1
However, whenever I do a test from a PC within that network either using:
- https://www.waveform.com/tools/bufferbloat?test-id=954fc335-1941-4368-b960-787b1e4748bf
- or doing a simple ping 8.8.8.8 while performing a speed test on https://www.speedtest.net/
.. then I always get terrible results as you can see. So clearly it's NOT working. I don't get it, why is it working on the router, but not within the netwerk? I'm very confused
Below some of my params:
~# cat /etc/config/sqm
config queue
option interface 'pppoe-wan'
option debug_logging '1'
option verbosity '5'
option qdisc 'cake'
option script 'piece_of_cake.qos'
option linklayer 'ethernet'
option overhead '44'
option download '57000'
option upload '19000'
option enabled '1'
~# ifstatus wan
{
"up": true,
"pending": false,
"available": true,
"autostart": true,
"dynamic": false,
"uptime": 76697,
"l3_device": "pppoe-wan",
"proto": "pppoe",
"device": "eth0.2",
"updated": [
"addresses",
"routes"
],
"metric": 0,
"dns_metric": 0,
"delegation": false,
"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": [
"redacted",
"redacted"
],
"dns-search": [
],
"neighbors": [
],
"inactive": {
"ipv4-address": [
],
"ipv6-address": [
],
"route": [
],
"dns-server": [
],
"dns-search": [
],
"neighbors": [
]
},
"data": {
}
}
~# tc -s qdisc
qdisc noqueue 0: dev lo root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 1358237647 bytes 2292327 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
maxpacket 0 drop_overlimit 0 new_flow_count 0 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc fq_codel 0: dev eth1 root refcnt 2 limit 10240p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
Sent 358004825 bytes 1676722 pkt (dropped 0, overlimits 0 requeues 4)
backlog 0b 0p requeues 4
maxpacket 2488 drop_overlimit 0 new_flow_count 1335 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc noqueue 0: dev br-guest root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth1.100 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-iot root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth1.70 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-lan root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth1.1 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-tnot root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth1.50 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-unot root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth1.60 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev eth0.2 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc cake 802d: dev pppoe-wan root refcnt 2 bandwidth 19Mbit besteffort triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms noatm overhead 44
Sent 144231086 bytes 234101 pkt (dropped 509, overlimits 138332 requeues 0)
backlog 0b 0p requeues 0
memory used: 48288b of 4Mb
capacity estimate: 19Mbit
min/max network layer size: 29 / 1492
min/max overhead-adjusted size: 73 / 1536
average network hdr offset: 0
Tin 0
thresh 19Mbit
target 5ms
interval 100ms
pk_delay 75us
av_delay 13us
sp_delay 6us
backlog 0b
pkts 234610
bytes 144990514
way_inds 942
way_miss 1318
way_cols 0
drops 509
marks 0
ack_drop 0
sp_flows 1
bk_flows 1
un_flows 0
max_len 2984
quantum 579
qdisc ingress ffff: dev pppoe-wan parent ffff:fff1 ----------------
Sent 413853718 bytes 328831 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan0 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan1 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan1-1 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan1-2 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan1-3 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc cake 802e: dev ifb4pppoe-wan root refcnt 2 bandwidth 57Mbit besteffort triple-isolate nonat wash no-ack-filter split-gso rtt 100ms noatm overhead 44
Sent 413495638 bytes 328591 pkt (dropped 240, overlimits 306529 requeues 0)
backlog 0b 0p requeues 0
memory used: 92352b of 4Mb
capacity estimate: 57Mbit
min/max network layer size: 36 / 1492
min/max overhead-adjusted size: 80 / 1536
average network hdr offset: 0
Tin 0
thresh 57Mbit
target 5ms
interval 100ms
pk_delay 29us
av_delay 11us
sp_delay 7us
backlog 0b
pkts 328831
bytes 413853718
way_inds 935
way_miss 1286
way_cols 0
drops 240
marks 0
ack_drop 0
sp_flows 1
bk_flows 1
un_flows 0
max_len 1492
quantum 1514