From: Alpha Sparc <alphasparc@gmail.com>
To: Dave Taht <dave.taht@bufferbloat.net>
Cc: Weedy <weedy2887@gmail.com>,
openwrt-devel <openwrt-devel@lists.openwrt.org>,
cerowrt-devel@lists.bufferbloat.net
Subject: Re: [Cerowrt-devel] [OpenWrt-Devel] [RFC PATCH] packages: Smart Queue Management for AQM Packet Scheduling and Qos from CeroWrt
Date: Thu, 2 Oct 2014 11:46:10 +0800 [thread overview]
Message-ID: <CAN4tgbyrq6KtdqrsW99a3y3KG-6r2D+HXLRVF9DPxG2-gw=ZyA@mail.gmail.com> (raw)
In-Reply-To: <20141002014914.GA12656@lists.bufferbloat.net>
[-- Attachment #1: Type: text/plain, Size: 9082 bytes --]
How good is the throughput on CeroWrt compared to OpenWrt ?
On Oct 2, 2014 9:55 AM, "Dave Taht" <dave.taht@bufferbloat.net> wrote:
> On Wed, Oct 01, 2014 at 12:10:46PM -0400, Weedy wrote:
> > On 30/03/14 06:29 PM, Dave Taht wrote:
> > > On Sun, Mar 30, 2014 at 02:24:44PM -0400, Weedy wrote:
> > >> On Sat, Mar 29, 2014 at 2:56 PM, Dave Täht <dave.taht@bufferbloat.net
> >wrote:
> > >>
> > >>> From: Dave Taht <dave.taht@bufferbloat.net>
> > >>>
> > >>> This adds support for the bufferbloat project's "Smart Queue
> Management"
> > >>> (SQM) system, which improves over openwrt's qos-scripts in the
> following
> > >>> ways
> > >>>
> > >>> + Uses HTB with two models for managing traffic
> > >>> a simplest one that merely uses fq_codel, and a three tier one
> that does
> > >>> some basic and tunable packet prioritization.
> > >>>
> > >>> + Works with ipv6 and ipv4 correctly (unlike qos-scripts)
> > >>> + extensive support for fixing ADSL and PPOe framing problems
> > >>> + Partial support for key diffserv markings
> > >>> + highly tuned fq_codel implementation especially for low bandwidths
> > >>> + Tested heavily on cable modems and on dsl devices
> > >>>
> > >>> It is a disimprovement in that:
> > >>>
> > >>> - There are no built-in tricks for doing l7 classification,
> > >>> or other forms of packet inspection.
> > >>>
> > >>> - We haven't explored hfsc all that much, prefering to rely
> > >>> on the predictable behavior of htb + fq_codel for everything
> > >>>
> > >>> - And there is support for a few qdiscs that are not in the linux
> > >>> kernel mainline that remain experimental.
> > >>> ---
> > >>> net/sqm-scripts/Makefile | 48 +++
> > >>> net/sqm-scripts/files/etc/config/sqm | 11 +
> > >>> net/sqm-scripts/files/etc/init.d/sqm | 23 ++
> > >>> net/sqm-scripts/files/usr/lib/sqm/functions.sh | 335
> > >>> ++++++++++++++++++++
> > >>> net/sqm-scripts/files/usr/lib/sqm/run.sh | 67 ++++
> > >>> net/sqm-scripts/files/usr/lib/sqm/simple.qos | 187
> +++++++++++
> > >>> net/sqm-scripts/files/usr/lib/sqm/simple.qos.help | 1 +
> > >>> net/sqm-scripts/files/usr/lib/sqm/simplest.qos | 84 +++++
> > >>> .../files/usr/lib/sqm/simplest.qos.help | 1 +
> > >>> net/sqm-scripts/files/usr/lib/sqm/stop.sh | 22 ++
> > >>> 10 files changed, 779 insertions(+)
> > >>> create mode 100644 net/sqm-scripts/Makefile
> > >>> create mode 100644 net/sqm-scripts/files/etc/config/sqm
> > >>> create mode 100755 net/sqm-scripts/files/etc/init.d/sqm
> > >>> create mode 100644 net/sqm-scripts/files/usr/lib/sqm/functions.sh
> > >>> create mode 100755 net/sqm-scripts/files/usr/lib/sqm/run.sh
> > >>> create mode 100755 net/sqm-scripts/files/usr/lib/sqm/simple.qos
> > >>> create mode 100644 net/sqm-scripts/files/usr/lib/sqm/simple.qos.help
> > >>> create mode 100755 net/sqm-scripts/files/usr/lib/sqm/simplest.qos
> > >>> create mode 100644
> net/sqm-scripts/files/usr/lib/sqm/simplest.qos.help
> > >>> create mode 100755 net/sqm-scripts/files/usr/lib/sqm/stop.sh
> > >>>
> > >>> diff --git a/net/sqm-scripts/files/etc/config/sqm
> > >>> b/net/sqm-scripts/files/etc/config/sqm
> > >>> new file mode 100644
> > >>> index 0000000..547d321
> > >>> --- /dev/null
> > >>> +++ b/net/sqm-scripts/files/etc/config/sqm
> > >>> @@ -0,0 +1,11 @@
> > >>> +
> > >>> +config queue 'ge00'
> > >>> + option enabled '0'
> > >>> + option interface 'ge00'
> > >>> + option download '20000'
> > >>> + option upload '4000'
> > >>> + option qdisc 'fq_codel'
> > >>> + option script 'simple.qos'
> > >>> + option qdisc_advanced '0'
> > >>> + option linklayer 'none'
> > >>> +
> > >>>
> > >>
> > >> How hard is this to config from the command line/vim?
> > >
> > > There are a few more options than this (for DSL compensation, ecn
> > > and advanced configuration), the above would work if you changed
> > > enabled to '1' and the device from ge00 to your wan device. (not
> > > the "wan" firewall rule, presently. )
> > >
> > > It does help to have a sane long term and realistic measurement of your
> > > network using something like the rrul test rather than the oft-gamed
> speedtest.
> > >
> > >
> http://www.bufferbloat.net/projects/cerowrt/wiki/Setting_up_SQM_for_CeroWrt_310
> > >
> > > You are right, we should fully document all the variables in this file.
> > > Until recently they were kind of in flux.
> > >
> > >> I've never needed or really wanted luci on my box, I just use vim.
> Going by
> > >> this patch, there is either nothing to config or no examples. I would
> think
> > >> shipping a roughly equivalent config to what ships in qos-scripts
> would be
> > >> a good start to get people testing.
> > >
> > > /etc/init.d/sqm start,stop etc work as expected.
> > >
> > >> IE: highest priority: small ARP, DNS, and SSH packets
> > >
> > > The SQM default is local DNS and ntp. fq_codel automagically optimizes
> > > for other sparse flows like arp, ssh, mosh, tcp syn, synack, etc,
> > > no need to do that via classification.
> > >
> > >> normal: HTTP, HTTPS
> > >
> > > So you want to deprioritize vpn, smtp, rsync, dropbox, http on odd
> ports,
> > > caching servers, etc, all in favor of the web gods?
> > >
> > > we just toss all that into the normal (best effort bin) and let
> fq_codel
> > > sort it out.
> > >
> > >> bulk: everything else.
> > >
> > > We do respect the diffserv marking of CS1 (background) and toss it
> > > into the background queue.
> > >
> > >> Side note: Will SQM do bandwidth slicing? Or at least handle "hostile"
> > >> environments better? I say "hostile" as in roommates or maybe teenage
> kids.
> > >> Multiple people/devices thinking they are entitled to the entire WAN
> > >> bandwidth at all times.
> > >
> > > fq_codel does fair (well, we call it "flow") queuing.
> > >
> > > https://tools.ietf.org/html/draft-hoeiland-joergensen-aqm-fq-codel-00
> > >
> > > And manages the depth of flows via codel.
> > >
> > > http://tools.ietf.org/html/draft-nichols-tsvwg-codel-02
> > >
> > > In other words, it will be fair to all fat flows generated by everyone,
> > > and slice flows down to the defined quantum and turn them back into
> > > packets.
> > >
> > > The "simplest.qos" model in SQM works remarkably well without trying to
> > > classify anything at all. I encourage people to try merely that and
> have
> > > their preconceptions altered.
> > >
> > > The three-tier model (simple.qos), is more like what people think they
> want,
> > > but the default is set to the bare minimum of what worked well in
> testing.
> > >
> > > Example: a lot of flows are marked CS1 that shouldn't be, and starving
> > > that queue to like 5% rather than it's current 30% turned out badly.
> > >
> > > In terms of identifying and "punishing" abusers, well, the only thing
> > > that stresses this code out even the slightest is dozens of torrent
> flows.
> > >
> > > Give it a shot. :)
> > >
> > I feel like this died.
>
> It didn't die.
>
> *I* died.
>
> I'd been on a death march for the last 8 months trying to
> get the last bugs out of openwrt/cerowrt, and when the last big one
> got fixed (bug 442 in the cerowrt database, multiple other trackers)
>
> I put out a release of 3.10.50-1 pre BBrc1 and went to sleep.
>
> When I woke up, about a week ago, everybody had nearly 2 months
> uptime, good throughput, and a bunch of minor nits here and there.
>
> Hooray!
>
> The prospect of resyncing with BBrcX intimidates me, and I have
> had a ton of other things that slid to take care of, so I've
> been catching up on those. Sebastian has been taking
> care of SQM nits...
>
> https://github.com/dtaht/ceropackages-3.10/issues/8
>
> And Jonathon morton has been pouring it all into
> pure C - with an integral bandwidth shaper that we
> hope will be faster and more efficient than htb.
>
> See an early result:
>
> http://pastebin.com/zz06WhJr
>
> It takes much of the heavy lifting out of the existing
> sqm scripts.
>
> tc qdisc add dev eth1 root cake bandwidth 80mbit
>
>
> So I don't know where to go. Certainly I'd like to
> see the battle hardened sqm scripts (which are more
> flexible than the C code above) get more widely used
> and in BB.
>
> openwrt users can do that today by adding the ceropackages repo to their
> build system.
> or just installing the sqm-scripts and luci-app-sqm.
>
> or we can clean it up further for openwrt mainline.
>
> But I haven't seen one core openwrt dev say, yes, we want this mainlined,
> here's what you need to fix, so I'm inclined to go back to my cave, get
> more sleep, and work on the successor.
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
>
[-- Attachment #2: Type: text/html, Size: 12053 bytes --]
next prev parent reply other threads:[~2014-10-02 3:46 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1396119385-16871-1-git-send-email-dave.taht@bufferbloat.net>
[not found] ` <1396119385-16871-2-git-send-email-dave.taht@bufferbloat.net>
[not found] ` <CAFE24U3s=z4jZkXMFU4xUyPyQ5fj95zOVxS7oBHGFuOp-FKXqw@mail.gmail.com>
[not found] ` <20140330222952.GA26806@lists.bufferbloat.net>
[not found] ` <542C2786.6090704@gmail.com>
2014-10-02 1:49 ` Dave Taht
2014-10-02 3:46 ` Alpha Sparc [this message]
2014-10-02 11:54 ` David Lang
2014-10-02 14:05 ` Sebastian Moeller
2014-10-06 16:02 ` Richard A. Smith
2014-10-06 19:41 ` Sebastian Moeller
2014-10-09 16:42 ` Richard Smith
2014-10-09 17:57 ` Sebastian Moeller
2014-10-09 18:05 ` Luis E. Garcia
2014-10-09 20:59 ` Sebastian Moeller
2015-02-13 2:02 ` Luis E. Garcia
2015-02-13 4:46 ` Dave Taht
2015-02-13 5:13 ` Luis E. Garcia
2014-10-09 18:13 ` Dave Taht
2014-10-09 18:14 ` Sebastian Moeller
[not found] ` <54359A46.8000107@iki.fi>
2014-10-09 3:01 ` Dave Taht
2014-10-09 17:09 ` Richard Smith
[not found] ` <CABXqzy77--kb59nedBnN+cLFGftN+gnBMJ9vi_xE8niP5YHEHw@mail.gmail.com>
2014-10-09 3:23 ` Dave Taht
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='CAN4tgbyrq6KtdqrsW99a3y3KG-6r2D+HXLRVF9DPxG2-gw=ZyA@mail.gmail.com' \
--to=alphasparc@gmail.com \
--cc=cerowrt-devel@lists.bufferbloat.net \
--cc=dave.taht@bufferbloat.net \
--cc=openwrt-devel@lists.openwrt.org \
--cc=weedy2887@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