Development issues regarding the cerowrt test router project
 help / color / mirror / Atom feed
From: Sebastian Moeller <moeller0@gmx.de>
To: Aaron Wood <woody77@gmail.com>
Cc: cerowrt-devel <cerowrt-devel@lists.bufferbloat.net>
Subject: Re: [Cerowrt-devel] ingress rate limiting falling short
Date: Wed, 3 Jun 2015 19:49:40 +0200	[thread overview]
Message-ID: <5A699476-8E71-4D38-BABE-F755931447B5@gmx.de> (raw)
In-Reply-To: <CALQXh-OjiUaStSrVAOcRodA8eGCL2eExNO76Ncu-7i3JJPRPPw@mail.gmail.com>

HI Aaron,


On Jun 3, 2015, at 07:45 , Aaron Wood <woody77@gmail.com> wrote:

> I wrote this up on my blog, where I can intersperse text and graphs a bit better:
> 
> http://burntchrome.blogspot.com/2015/06/htb-rate-limiting-not-quite-lining-up.html
> 
> Basically, I ran a series of tcp_download tests, using increasing ingress rates with sqm_scripts, and then used flent's box-plots to put the results into a combined image for comparing.
> 
> On the 3800, it never meets the rate, but it's only off by maybe 5%.  

	As Jonathan pointed out already this is in the range of the difference between raw rates and tcp good put, so nothing to write home about ;)

> But on my new WRT1900AC, it's wildly off, even over the same performance range (I tested it from 80-220Mbps rates in 20Mbps jumps, and saw from 40-150Mbps.

	So you started with the WRT1900AC where the wndr3800 dropped off? I wonder maybe the Belkin is also almost linear for the lower range? I also note we adjust the quantum based on the rates:
from functions .sh:
get_mtu() {
        BW=$2
        F=`cat /sys/class/net/$1/mtu`
        if [ -z "$F" ]
        then
        F=1500
        fi
        if [ $BW -gt 20000 ]
        then
                F=$(($F * 2))
        fi
        if [ $BW -gt 30000 ]
        then
                F=$(($F * 2))
        fi
        if [ $BW -gt 40000 ]
        then
                F=$(($F * 2))
        fi
        if [ $BW -gt 50000 ]
        then
                F=$(($F * 2))
        fi
        if [ $BW -gt 60000 ]
        then
                F=$(($F * 2))
        fi
        if [ $BW -gt 80000 ]
        then
                F=$(($F * 2))
        fi
        echo $F
}

which we use in the htb invocations via this indirection:
LQ="quantum `get_mtu $IFACE $CEIL`”

$TC qdisc add dev $DEV root handle 1: `get_stab_string` htb default 12
$TC class add dev $DEV parent 1: classid 1:1 htb $LQ rate ${CEIL}kbit ceil ${CEIL}kbit `get_htb_adsll_string`
$TC class add dev $DEV parent 1:1 classid 1:10 htb $LQ rate ${CEIL}kbit ceil ${CEIL}kbit prio 0 `get_htb_adsll_string`
$TC class add dev $DEV parent 1:1 classid 1:11 htb $LQ rate 32kbit ceil ${PRIO_RATE}kbit prio 1 `get_htb_adsll_string`
$TC class add dev $DEV parent 1:1 classid 1:12 htb $LQ rate ${BE_RATE}kbit ceil ${BE_CEIL}kbit prio 2 `get_htb_adsll_string`
$TC class add dev $DEV parent 1:1 classid 1:13 htb $LQ rate ${BK_RATE}kbit ceil ${BE_CEIL}kbit prio 3 `get_htb_adsll_string`

So maybe we need to extend the quantum increases beyond 80Mbps to keep things linear?

I don’t know but it sure looks suspicious…



> 
> I have no idea where to start looking for the cause.  But for now, I'm just setting my ingress rate MUCH higher than I should, because it's working out to the right value as a result.

	It would be great to understand why we need to massively under-shape in that situation to get decent shaping and decent latency under load.

Best Regards
	Sebastian

> 
> -Aaron
> _______________________________________________
> Cerowrt-devel mailing list
> Cerowrt-devel@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cerowrt-devel


  parent reply	other threads:[~2015-06-03 17:51 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-03  5:45 Aaron Wood
2015-06-03  6:00 ` Dave Taht
2015-06-03 15:53 ` Jonathan Morton
2015-06-03 15:58 ` Sebastian Moeller
2015-06-03 16:25 ` Jonathan Morton
2015-06-03 17:49 ` Sebastian Moeller [this message]
2015-06-03 22:16   ` Aaron Wood
2015-06-03 22:27     ` Dave Taht
2015-06-03 22:34       ` Dave Taht
2015-06-03 22:43       ` Aaron Wood

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://lists.bufferbloat.net/postorius/lists/cerowrt-devel.lists.bufferbloat.net/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5A699476-8E71-4D38-BABE-F755931447B5@gmx.de \
    --to=moeller0@gmx.de \
    --cc=cerowrt-devel@lists.bufferbloat.net \
    --cc=woody77@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox