[Cake] fq_codel on 3g network in Mauritius
moeller0
moeller0 at gmx.de
Sun Jul 24 06:53:30 EDT 2016
Hi Loganaden,
> On Jul 24, 2016, at 07:53 , Loganaden Velvindron <loganaden at gmail.com> wrote:
>
> I've set the interval to 350ms, by using advanced option:
>
> Result is better:
>
> http://www.dslreports.com/speedtest/4520697
>
>
> I will submit a patch for sqm-luci so that the interval is
> configurable easily via web ui for African countries where the latency
> tends to be of the order of 300ms to 600ms, particularly on 3g
> connections.
Good idea, I would propose to offer the choice from a drop down bow of the values that cake already uses (while not the biggest fan of cake’s names I believe consistency will be helpful) as well as the ability to add a numeric value. In theory interval can be different for ingress and egress (think old-school SAT-internet with modem upload) it probably is easiest to only configure one interval setting for the time being.
Best Regards
Sebastian
>
>
> tc -s qdisc
> qdisc fq_codel 0: dev eth0 root refcnt 2 limit 1024p flows 1024
> quantum 300 target 5.0ms interval 100.0ms ecn
> Sent 3493746 bytes 5455 pkt (dropped 0, overlimits 0 requeues 2)
> backlog 0b 0p requeues 2
> maxpacket 256 drop_overlimit 0 new_flow_count 0 ecn_mark 0
> new_flows_len 0 old_flows_len 0
> qdisc htb 1: dev eth1 root refcnt 2 r2q 10 default 12
> direct_packets_stat 3 direct_qlen 1000
> Sent 4869533 bytes 18710 pkt (dropped 0, overlimits 8200 requeues 0)
> backlog 0b 0p requeues 0
> qdisc fq_codel 110: dev eth1 parent 1:11 limit 1001p flows 1024
> quantum 300 target 41.1ms interval 350.0ms
> Sent 12742 bytes 115 pkt (dropped 0, overlimits 0 requeues 0)
> backlog 0b 0p requeues 0
> maxpacket 256 drop_overlimit 0 new_flow_count 84 ecn_mark 0
> new_flows_len 0 old_flows_len 1
> qdisc fq_codel 120: dev eth1 parent 1:12 limit 1001p flows 1024
> quantum 300 target 41.1ms interval 350.0ms
> Sent 4854326 bytes 18569 pkt (dropped 85, overlimits 0 requeues 0)
> backlog 0b 0p requeues 0
> maxpacket 1454 drop_overlimit 0 new_flow_count 4831 ecn_mark 0
> new_flows_len 1 old_flows_len 1
> qdisc fq_codel 130: dev eth1 parent 1:13 limit 1001p flows 1024
> quantum 300 target 41.1ms interval 350.0ms
> Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
> backlog 0b 0p requeues 0
> maxpacket 256 drop_overlimit 0 new_flow_count 0 ecn_mark 0
> new_flows_len 0 old_flows_len 0
> qdisc ingress ffff: dev eth1 parent ffff:fff1 ----------------
> Sent 21938964 bytes 23336 pkt (dropped 0, overlimits 0 requeues 0)
> backlog 0b 0p requeues 0
> qdisc mq 0: dev wlan0 root
> Sent 18874833 bytes 18494 pkt (dropped 0, overlimits 0 requeues 2)
> backlog 0b 0p requeues 2
> qdisc htb 1: dev ifb4eth1 root refcnt 2 r2q 10 default 10
> direct_packets_stat 0 direct_qlen 32
> Sent 22265602 bytes 23335 pkt (dropped 0, overlimits 5193 requeues 0)
> backlog 0b 0p requeues 0
> qdisc fq_codel 110: dev ifb4eth1 parent 1:10 limit 1001p flows 1024
> quantum 300 target 5.0ms interval 350.0ms ecn
> Sent 22265602 bytes 23335 pkt (dropped 0, overlimits 0 requeues 0)
> backlog 0b 0p requeues 0
> maxpacket 1454 drop_overlimit 0 new_flow_count 4392 ecn_mark 0
> new_flows_len 1 old_flows_len 1
>
> On Sat, Jul 23, 2016 at 10:59 PM, Loganaden Velvindron
> <loganaden at gmail.com> wrote:
>> After going through:
>>
>> https://tools.ietf.org/html/draft-ietf-aqm-fq-codel-06
>>
>> I think that I should remove the itarget and etarget, and set the
>> Interval rather to 500ms.
>>
>>
>>
>> The _interval_ parameter has the same semantics as CoDel and is used
>> to ensure that the minimum sojourn time of packets in a queue used as
>> an estimator by the CoDel control algorithm is a relatively up-to-
>> date value. That is, CoDel only reacts to delay experienced in the
>> last epoch of length interval. It SHOULD be set to be on the order
>> of the worst-case RTT through the bottleneck to give end-points
>> sufficient time to react.
>>
>> The default interval value is 100 ms.
>>
>> The default interval value is not suited for my 3g connection where
>> the worse-case RTT is much higher.
>>
>>
>>
>> On Sat, Jul 23, 2016 at 10:36 PM, Loganaden Velvindron
>> <loganaden at gmail.com> wrote:
>>>> It seems the initial burst like behavior from the earlier test was a false positive; these test are still not beautiful, but at least they do not indicate that HTB+fq_codel as configured on your system do not suffer from uncontrolled bursty-ness. Unfortunately, I have no real insight or advice to offer how to improve your situation (short f setting the shaper rates considerably lower).
>>>> BTW, “tc -d qdisc” and “tc -s disc” give a bit more information, and “tc class show dev eth1” and “tc class show dev ifb4eth1” will also offer more detail about your setup.
>>>>
>>>>
>>>> Best Regards
>>>> Sebastian
>>>>
>>>>
>>>>
>>>
>>> tc -d qdisc:
>>>
>>> qdisc fq_codel 0: dev eth0 root refcnt 2 limit 1024p flows 1024
>>> quantum 300 target 5.0ms interval 100.0ms ecn
>>> qdisc htb 1: dev eth1 root refcnt 2 r2q 10 default 12
>>> direct_packets_stat 5 ver 3.17 direct_qlen 1000
>>> qdisc fq_codel 110: dev eth1 parent 1:11 limit 1001p flows 1024
>>> quantum 300 target 500.0ms interval 100.0ms
>>> qdisc fq_codel 120: dev eth1 parent 1:12 limit 1001p flows 1024
>>> quantum 300 target 500.0ms interval 100.0ms
>>> qdisc fq_codel 130: dev eth1 parent 1:13 limit 1001p flows 1024
>>> quantum 300 target 500.0ms interval 100.0ms
>>> qdisc ingress ffff: dev eth1 parent ffff:fff1 ----------------
>>> qdisc mq 0: dev wlan0 root
>>> qdisc htb 1: dev ifb4eth1 root refcnt 2 r2q 10 default 10
>>> direct_packets_stat 0 ver 3.17 direct_qlen 32
>>> qdisc fq_codel 110: dev ifb4eth1 parent 1:10 limit 1001p flows 1024
>>> quantum 300 target 500.0ms interval 100.0ms ecn
>>>
>>> tc -s qdisc:
>>>
>>> qdisc fq_codel 0: dev eth0 root refcnt 2 limit 1024p flows 1024
>>> quantum 300 target 5.0ms interval 100.0ms ecn
>>> Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
>>> backlog 0b 0p requeues 0
>>> maxpacket 256 drop_overlimit 0 new_flow_count 0 ecn_mark 0
>>> new_flows_len 0 old_flows_len 0
>>> qdisc htb 1: dev eth1 root refcnt 2 r2q 10 default 12
>>> direct_packets_stat 5 direct_qlen 1000
>>> Sent 23456195 bytes 109776 pkt (dropped 0, overlimits 86210 requeues 0)
>>> backlog 0b 4p requeues 0
>>> qdisc fq_codel 110: dev eth1 parent 1:11 limit 1001p flows 1024
>>> quantum 300 target 500.0ms interval 100.0ms
>>> Sent 14760 bytes 164 pkt (dropped 0, overlimits 0 requeues 0)
>>> backlog 0b 0p requeues 0
>>> maxpacket 256 drop_overlimit 0 new_flow_count 163 ecn_mark 0
>>> new_flows_len 1 old_flows_len 0
>>> qdisc fq_codel 120: dev eth1 parent 1:12 limit 1001p flows 1024
>>> quantum 300 target 500.0ms interval 100.0ms
>>> Sent 23440300 bytes 109600 pkt (dropped 115, overlimits 0 requeues 0)
>>> backlog 5816b 4p requeues 0
>>> maxpacket 1454 drop_overlimit 0 new_flow_count 15749 ecn_mark 0
>>> new_flows_len 0 old_flows_len 1
>>> qdisc fq_codel 130: dev eth1 parent 1:13 limit 1001p flows 1024
>>> quantum 300 target 500.0ms interval 100.0ms
>>> Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
>>> backlog 0b 0p requeues 0
>>> maxpacket 256 drop_overlimit 0 new_flow_count 0 ecn_mark 0
>>> new_flows_len 0 old_flows_len 0
>>> qdisc ingress ffff: dev eth1 parent ffff:fff1 ----------------
>>> Sent 190858989 bytes 149884 pkt (dropped 0, overlimits 0 requeues 0)
>>> backlog 0b 0p requeues 0
>>> qdisc mq 0: dev wlan0 root
>>> Sent 194287835 bytes 153002 pkt (dropped 0, overlimits 0 requeues 7)
>>> backlog 0b 0p requeues 7
>>> qdisc htb 1: dev ifb4eth1 root refcnt 2 r2q 10 default 10
>>> direct_packets_stat 0 direct_qlen 32
>>> Sent 192953486 bytes 149877 pkt (dropped 0, overlimits 41505 requeues 0)
>>> backlog 0b 0p requeues 0
>>> qdisc fq_codel 110: dev ifb4eth1 parent 1:10 limit 1001p flows 1024
>>> quantum 300 target 500.0ms interval 100.0ms ecn
>>> Sent 192953486 bytes 149877 pkt (dropped 0, overlimits 0 requeues 0)
>>> backlog 0b 0p requeues 0
>>> maxpacket 1454 drop_overlimit 0 new_flow_count 16778 ecn_mark 0
>>> new_flows_len 1 old_flows_len 2
>>>
>>>
>>> tc class show dev eth1
>>> class htb 1:11 parent 1:1 leaf 110: prio 1 rate 128Kbit ceil 100Kbit
>>> burst 1600b cburst 1600b
>>> class htb 1:1 root rate 300Kbit ceil 300Kbit burst 1599b cburst 1599b
>>> class htb 1:10 parent 1:1 prio 0 rate 300Kbit ceil 300Kbit burst 1599b
>>> cburst 1599b
>>> class htb 1:13 parent 1:1 leaf 130: prio 3 rate 50Kbit ceil 284Kbit
>>> burst 1600b cburst 1599b
>>> class htb 1:12 parent 1:1 leaf 120: prio 2 rate 50Kbit ceil 284Kbit
>>> burst 1600b cburst 1599b
>>> class fq_codel 110:188 parent 110:
>>> class fq_codel 120:3d6 parent 120:
>>>
>>>
>>> tc class show dev ifb4eth1:
>>> class htb 1:10 parent 1:1 leaf 110: prio 0 rate 19600Kbit ceil
>>> 19600Kbit burst 1597b cburst 1597b
>>> class htb 1:1 root rate 19600Kbit ceil 19600Kbit burst 1597b cburst 1597b
>>> class fq_codel 110:2f1 parent 110:
>>> class fq_codel 110:330 parent 110:
>>>
>>> I changed the target from 350ms to 500ms for both ingress and egree,
>>> and the throughput seem to be better:
>>>
>>> http://www.dslreports.com/speedtest/4515961
More information about the Cake
mailing list