[Cake] low bandwidth default params best effort vs voice latency.
Andy Furniss
adf.lists at gmail.com
Sat Mar 4 13:21:01 EST 2017
In the UK quite a lot of people have a 40/2 vdsl2 product.
Thankfully not me, ugh, it doesn't even have enough bandwidth for
sack per incoming in recovery - but "pretending" I wanted to see what
cake was like.
tc qdisc add dev enp6s0 handle 1:0 root cake bandwidth 1969230bit
overhead 34 dual-srchost diffserv3
tc -s qdisc ls dev enp6s0
qdisc cake 1: root refcnt 2 bandwidth 1969Kbit diffserv3 dual-srchost
rtt 100.0ms noatm overhead 34 via-ethernet
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
memory used: 0b of 4Mb
capacity estimate: 1969Kbit
Bulk Best Effort Voice
thresh 123072bit 1969Kbit 492304bit
target 147.6ms 9.2ms 36.9ms
interval 295.2ms 104.2ms 73.8ms
Now we have 3 xbox ones in the house and I know that when we play
soldiers together they each do 60 pps upstream just for the game
(more if you include voice).
So I use fping x3 to sim this from 3 different ips and then also
do a single upload (netperf) with a fourth address.
fping -S 192.168.0.59 -c 1000 -b 150 -p 16 -i 16 -Q 1 asr & fping .......
With all traffic through Best effort, 1000 pings x3 looks like
asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.55/4.57/8.77
asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.57/4.78/8.67
asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.60/4.62/8.73
I notice that unlike diffserv4 marking game traffic as real time
interactive (cs4) doesn't go to voice.
So I mark icmp as ef which does go to voice and repeat the test.
It performs slightly worse for max delay.
asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.50/4.33/14.1
asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.65/4.44/11.2
asr : xmt/rcv/%loss = 1000/1000/0%, min/avg/max = 0.86/4.71/13.6
Admittedly it's only a small proportion of the packets that are
above average but still it's not the result I would have hoped for.
I know cake seeks to be low configuration, but being able to tweak
things like target/interval and thresh per bin I think would give
greater flexibility. On thresh for example, a single xbox hosting
a game may need a bit more than 492k and (IMHO) it should be up to the
user to decide things like that.
More information about the Cake
mailing list