[Firehol-support] FireQOS Handling link speeds

Tsaousis, Costa costa at tsaousis.gr
Thu Aug 27 03:02:21 CEST 2015


Hi Julian,

Strange problem...

Lets make a test: set at FireQOS the interface speed to 1Gbps in both
directions and monitor it while downloading. At what speed it peaks?


PS: You can also use netdata for graphing various attributes of your
linux box (https://github.com/ktsaou/netdata).


On Thu, Aug 27, 2015 at 2:17 AM, Julian Tyler <lovely at crm114.net> wrote:
> Hello all,
>
> I've been using fireqos on a DSL link for a few years and recently i've added a cable modem as that the way my country/area is going.
> However after playing around with fireqos on this new connection. I've discovered something that I don't how to fix.
>
> From my server outwards there is a 1000BaseT ethernet connection to Netgear CG3100D-2BPAUS. Which then connects via a docis coax connection with 115/2.5 (DWN/UP) megabit bandwidth.
>
> See end of message for extra info and my current fireqos config for that link.
>
> When the ethernet port between the cable modem and server is configured at 1000BaseT.  I see while watching this link with fireqos status, a limit between 34mbs and 48 mbs, with backlog packets (yellow numbers), the speed slows and picks up again cyclically.
>
> However when the ethernet port is configure as 100BaseT. The link sits happily around 90 (+/- 5) mbs. Both test were to the same server (rsync/ssh), in a 10 minutes window.
>
> I believe this is due to the cable modem providing bursty traffic, which i guess fq_codel sees as overloading the link and starts backlogging/dropping to slow things down (overly aggressively)
> What is best way apart from running the ethernet link at 100BaseT to fix this?
>
> Extra Info:
> Using FireQOS 2.0.0
>
> eth2 Byte Queue Limit: 3000 (same oddness at max BQL)
> eth2 offloads disabled.
>
> fireqos.hfc.conf below:
>
> DEVICE=eth2
> SYNC_DWN=114000
> SYNC_UP=2500
>
> INPUT_SPEED="$(($SYNC_DWN * 95 / 100))kbit"
> OUTPUT_SPEED="$(($SYNC_UP  * 95 / 100))kbit"
>
> LINKTYPE="ethernet"
>
> server_rtp_ports="udp/10000:10100"
> server_lol_ports="udp/5000:5500 tcp/8393:8400,2099,5223,5222,8088"
> server_openvpn_ports="any/1195:1198"
> server_mytorrent_ports="any/49710"
>
> # ------------- INTERFACES -------------
> interface $DEVICE hfc bidirectional $LINKTYPE input rate $INPUT_SPEED output rate $OUTPUT_SPEED
>         class voip commit 100kbit pfifo
>                 server sip
>                 client sip
>                 server rtp
>                 client stun
>
>         class interactive input commit 5% output commit 10%
>                 server icmp
>                 server dns
>                 client dns
>                 server ssh
>                 client ssh
>                 client teamviewer
>                 client lol
>
>         class chat input commit 1000kbit output commit 100kbit
>                 client facetime
>                 server hangouts
>                 client hangouts
>                 client gtalk
>                 client jabber
>
>         class vpns input commit 5% output commit 10%
>                 server pptp
>                 server GRE
>                 server openvpn
>
>         class servers
>                 server http
>
>         class surfing prio keep commit 10%
>                 client surfing
>                 client rsync
>
>         class ftp prio keep commit 10%
>                 client ftp
>
>         class synacks output commit 1000kbit
>                 match tcp syn
>                 match tcp ack
>
>         class default fq_codel options "noecn"
>
>         class torrents fq_codel options "noecn"
>                 client torrents
>                 server mytorrent prio 1
>                 match sports 16384:65535 dports 16384:65535
>                 match mark 1024
>                 match ip X.X.X.X prio 1
>
> --------
> Below is the output: tc qdisc show dev eth2 and  tc qdisc show dev eth2-ifb
>
> qdisc htb 1: root refcnt 2 r2q 1 default 5000 direct_packets_stat 527 direct_qlen 1000
> qdisc pfifo 11: parent 1:11 limit 1000p
> qdisc fq_codel 12: parent 1:12 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 13: parent 1:13 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 14: parent 1:14 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 15: parent 1:15 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 16: parent 1:16 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 17: parent 1:17 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 18: parent 1:18 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 19: parent 1:5000 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms
> qdisc fq_codel 20: parent 1:20 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms
> qdisc ingress ffff: parent ffff:fff1 ----------------
>
> qdisc htb 1: root refcnt 2 r2q 79 default 5000 direct_packets_stat 1353 direct_qlen 32
> qdisc pfifo 11: parent 1:11 limit 32p
> qdisc fq_codel 12: parent 1:12 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 13: parent 1:13 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 14: parent 1:14 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 15: parent 1:15 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 16: parent 1:16 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 17: parent 1:17 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 18: parent 1:18 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms ecn
> qdisc fq_codel 19: parent 1:5000 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms
> qdisc fq_codel 20: parent 1:20 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms
>
>
> _______________________________________________
> Firehol-support mailing list
> Firehol-support at lists.firehol.org
> http://lists.firehol.org/mailman/listinfo/firehol-support


More information about the Firehol-support mailing list