[Firehol-support] FireQOS Handling link speeds
Julian Tyler
lovely at crm114.net
Thu Aug 27 00:17:42 BST 2015
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
More information about the Firehol-support
mailing list