I've configured SQM from the guides available and forum advice, and have been tweaking and testing over the last few days. In general I am very pleased with the SQM service and, in particular, my online meetings are running more smoothly than before. I've got a bit obsessed with DSL speed test reports and am at the point where I don't think I can make any further improvements based on my knowledge, but have a feeling that things are still not quite right.
Here's my config for reference:
config queue
option verbosity '5'
option squash_dscp '1'
option squash_ingress '1'
option ingress_ecn 'ECN'
option egress_ecn 'NOECN'
option interface 'eth1.2'
option debug_logging '1'
option qdisc 'cake'
option qdisc_advanced '1'
option qdisc_really_really_advanced '1'
option script 'layer_cake.qos'
option eqdisc_opts 'diffserv4 dual-srchost bridged-ptm ether-vlan nat mpu 72 ack-filter'
option enabled '1'
option iqdisc_opts 'diffserv4 dual-dsthost bridged-ptm ether-vlan nat mpu 72 ingress'
option linklayer 'none'
option download '60000'
option upload '12000'
I have three questions:
-
My ISP is Sky broadband (FTTC) and I run my OpenWRT (Linksys WRT3200ACM on Davidc502 r13342) router behind the Sky Hub router via DMZ (poor man's bridge). The down and upstream connection speed I get reported on the Sky router is 69548 down / 13625 up. A wired client on the OpenWRT router will report on average 63070 down / 12860 up, and I've settled after general tuning on SQM 60000 ingress / 12000 egress. Can I be any more scientific about this without installing flent (this is a rabbithole I'm trying to avoid). It doesn't feel like I've quite got the best out of the connection and given point 2 below I start to question my own judgement.......
-
Most DSL reports return A+ for both bufferbloat and quality from various device types (Android, iOS, Windows, etc) both wired and wireless. However sometimes I can poor results (B / C and D for either bufferbloat or quality, or both) and there seems to be no real pattern from time of day, perceived internet speed, etc. My question is - can I assume that with properly tuned set up I should expect to always get A+ bufferbloat ratings, or do I need to accept that my connection / hardware set up will never be 100% perfect and sometimes I'll get the odd poor result?
- I'm starting to get a bit more familiar with the qdisc logs but wanted to see if there were any glaring issues like dropped packets? Given my configuration does this mean that I haven't set things up correctly and if not, can anyone spot any obvious errors and put me right please?
~# 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 mq 0: dev eth1 root
Sent 3666412222 bytes 4759179 pkt (dropped 0, overlimits 0 requeues 5)
backlog 0b 0p requeues 5
qdisc fq_codel 0: dev eth1 parent :8 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 parent :7 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 parent :6 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 parent :5 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 3666412222 bytes 4759179 pkt (dropped 0, overlimits 0 requeues 5)
backlog 0b 0p requeues 5
maxpacket 1494 drop_overlimit 0 new_flow_count 3 ecn_mark 0
new_flows_len 0 old_flows_len 0
qdisc mq 0: dev eth0 root
Sent 5331321075 bytes 7245137 pkt (dropped 0, overlimits 0 requeues 50)
backlog 0b 0p requeues 50
qdisc fq_codel 0: dev eth0 parent :8 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 eth0 parent :7 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 eth0 parent :6 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 eth0 parent :5 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 eth0 parent :4 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 eth0 parent :3 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 eth0 parent :2 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 0 bytes 0 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 eth0 parent :1 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 4Mb ecn
Sent 5331321075 bytes 7245137 pkt (dropped 0, overlimits 0 requeues 50)
backlog 0b 0p requeues 50
maxpacket 4542 drop_overlimit 0 new_flow_count 77 ecn_mark 0
new_flows_len 0 old_flows_len 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 eth0.1 root refcnt 2
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc cake 8014: dev eth1.2 root refcnt 2 bandwidth 12Mbit diffserv4 dual-srchost nat nowash ack-filter split-gso rtt 100.0ms ptm overhead 26 mpu 72
Sent 603249079 bytes 946638 pkt (dropped 11858, overlimits 1246472 requeues 0)
backlog 0b 0p requeues 0
memory used: 209438b of 4Mb
capacity estimate: 12Mbit
min/max network layer size: 28 / 1500
min/max overhead-adjusted size: 74 / 1550
average network hdr offset: 14
Bulk Best Effort Video Voice
thresh 750Kbit 12Mbit 6Mbit 3Mbit
target 24.3ms 5.0ms 5.0ms 6.1ms
interval 119.3ms 100.0ms 100.0ms 101.1ms
pk_delay 0us 3.6ms 352us 808us
av_delay 0us 386us 52us 33us
sp_delay 0us 6us 2us 2us
backlog 0b 0b 0b 0b
pkts 0 890082 7785 60629
bytes 0 593031777 1179774 10416437
way_inds 0 19442 0 0
way_miss 0 10338 15 83
way_cols 0 0 0 0
drops 0 428 0 0
marks 0 0 0 0
ack_drop 0 11422 0 8
sp_flows 0 0 0 0
bk_flows 0 1 0 0
un_flows 0 0 0 0
max_len 0 19422 290 2016
quantum 300 366 300 300
qdisc ingress ffff: dev eth1.2 parent ffff:fff1 ----------------
Sent 1074647625 bytes 1577702 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc cake 8015: dev ifb4eth1.2 root refcnt 2 bandwidth 60Mbit diffserv4 dual-dsthost nat wash ingress no-ack-filter split-gso rtt 100.0ms ptm overhead 26 mpu 72
Sent 1101083842 bytes 1577640 pkt (dropped 62, overlimits 1631420 requeues 0)
backlog 0b 0p requeues 0
memory used: 272Kb of 4Mb
capacity estimate: 60Mbit
min/max network layer size: 32 / 1500
min/max overhead-adjusted size: 74 / 1550
average network hdr offset: 14
Bulk Best Effort Video Voice
thresh 3750Kbit 60Mbit 30Mbit 15Mbit
target 5.0ms 5.0ms 5.0ms 5.0ms
interval 100.0ms 100.0ms 100.0ms 100.0ms
pk_delay 0us 114us 1us 65us
av_delay 0us 13us 0us 3us
sp_delay 0us 1us 0us 1us
backlog 0b 0b 0b 0b
pkts 0 1576070 2 1630
bytes 0 1101084221 144 88864
way_inds 0 74398 0 0
way_miss 0 43091 1 7
way_cols 0 0 0 0
drops 0 62 0 0
marks 0 0 0 0
ack_drop 0 0 0 0
sp_flows 0 1 1 0
bk_flows 0 1 0 0
un_flows 0 0 0 0
max_len 0 11598 72 72
quantum 300 1514 915 457
As stated at the start of the post, in general I'm really happy - just want to be absolutely sure I'm not missing anything that I could improve upon. Thanks in advance for any help.