* [Bloat] Questions about the use of HTB & fq_codel in simple.qos, simplest.qos
[not found] ` <CAA93jw7cix_TGiTLMT78hH-VGcF92e6BD7BTmpxKVmU7yqSBAw@mail.gmail.com>
@ 2015-04-09 21:35 ` Rich Brown
2015-04-09 22:02 ` Jonathan Morton
0 siblings, 1 reply; 4+ messages in thread
From: Rich Brown @ 2015-04-09 21:35 UTC (permalink / raw)
To: bloat, cerowrt-devel
[-- Attachment #1: Type: text/plain, Size: 2968 bytes --]
I've been thinking about the message we're sending re: QoS/prioritization vs SQM, and I'm not clear on what our story is. Here's what I understand:
- On one hand, we say that good SQM algorithms (fq_codel, for example) will do an astonishingly good job of minimizing latency without any parameters (except perhaps link speed for slow bottlenecks)
- On the other hand, our example sqm-scripts (simplest.qos, simple.qos) have a HTB based shaper installed that (if I understand Dave Täht's description below) seems designed to limit the rate of various kinds of traffic before it gets to fq_codel. (The HTB shaper would, a priori, require some kind of configuration/parameter.)
My questions:
- Why do we provide an HTB-based shaper in simple.qos and simplest.qos?
- Do the shapers in these sqm-scripts actually limit bandwidth for various kinds of traffic? Might that not leave unused bandwidth?
- Or do they just shunt certain packets to higher or lower priority fq_codel tiers/bands/levels (terminology used in Dave's note below)?
- And if the latter, how does the "link" (I'm not sure of the proper term) know which of the tiers/bands/levels to dequeue next?
I'll state up front that I'm not entirely clear on the distinction between shapers, qdisc's, IFBs, etc. But I'm groping around for a simple, clear recommendation for what we should tell people to do so they can:
a) Make their router work very well, with minimal latency
b) Spend their time more usefully than tweaking QoS/priority settings (for example, by actually playing the game that whose lag you're trying to minimize :-)
Many thanks!
Rich
On Dec 29, 2013, at 2:24 AM, Dave Taht <dave.taht@gmail.com> wrote:
>> QUESTION #4: What are the major features of (and/or differences between) the simple.qos, simplest.qos, and drr.qos scripts?
>
> Simplest.qos is the simplest possible htb based shaper, with only a
> single fq_codel qdisc (with 1024 queues) Advantages are that it does
> optimal mixing and uses the least memory. (it works pretty good down
> to about 16 queues actually)
>
> Simple.qos is a three tier system that can use diffserv and simple
> prioritization to give or remove priority to certain kinds of
> identifiable flows. Right now it gives priority to locally generated
> dns and ntp packets, and a couple diffserv markings, and deprioritizes
> CS1. It would be nice if it was feature-competitive with qos-scripts,
> which have (for example) l7 inspection to find common torrent-like
> protocols, and a gui with lots of knobs to control that aspect.
>
> I waffle on calling things "tiers" rather than "queues". "levels?"
> "Bands?" Band is used in the pfifo_fast and prio qdiscs, maybe we
> should call it that. A queue can be a queue, but an fq_codel queue
> consists of up to 64k flows which can also be considered queues. And
> it's turtles all the way down.
> ... Dave notes that inclusion of ddr.qos was a build error...
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 496 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Bloat] Questions about the use of HTB & fq_codel in simple.qos, simplest.qos
2015-04-09 21:35 ` [Bloat] Questions about the use of HTB & fq_codel in simple.qos, simplest.qos Rich Brown
@ 2015-04-09 22:02 ` Jonathan Morton
2015-04-10 12:14 ` Rich Brown
0 siblings, 1 reply; 4+ messages in thread
From: Jonathan Morton @ 2015-04-09 22:02 UTC (permalink / raw)
To: Rich Brown; +Cc: cerowrt-devel, bloat
> On 10 Apr, 2015, at 00:35, Rich Brown <richb.hanover@gmail.com> wrote:
>
> - Why do we provide an HTB-based shaper in simple.qos and simplest.qos?
> - Do the shapers in these sqm-scripts actually limit bandwidth for various kinds of traffic? Might that not leave unused bandwidth?
> - Or do they just shunt certain packets to higher or lower priority fq_codel tiers/bands/levels (terminology used in Dave's note below)?
> - And if the latter, how does the "link" (I'm not sure of the proper term) know which of the tiers/bands/levels to dequeue next?
The short answer is: because cake isn’t out in the real world yet. We’re working on it.
HTB and IFB as used in those scripts is a stopgap solution, to take control of the bottleneck queue so that fq_codel can work on it. Cake includes a shaper which does the job more effectively and more efficiently.
Ultimately, what we’d like is for fq_codel (or even something as sophisticated as cake) to be implemented in the *actual* bottleneck queues, so that artificially taking control of the bottleneck isn’t necessary.
> I'll state up front that I'm not entirely clear on the distinction between shapers, qdisc's, IFBs, etc. But I'm groping around for a simple, clear recommendation for what we should tell people to do so they can:
> a) Make their router work very well, with minimal latency
> b) Spend their time more usefully than tweaking QoS/priority settings (for example, by actually playing the game that whose lag you're trying to minimize :-)
If they’ve got a router with the sqm-scripts installed, use those and follow the directions. The implementation is a little messy, but it works and it keeps things simple for the user.
When cake arrives, the implementation will get simpler and more efficient.
- Jonathan Morton
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Bloat] Questions about the use of HTB & fq_codel in simple.qos, simplest.qos
2015-04-09 22:02 ` Jonathan Morton
@ 2015-04-10 12:14 ` Rich Brown
2015-04-11 15:53 ` Kathleen Nichols
0 siblings, 1 reply; 4+ messages in thread
From: Rich Brown @ 2015-04-10 12:14 UTC (permalink / raw)
To: Jonathan Morton; +Cc: cerowrt-devel, bloat
[-- Attachment #1: Type: text/plain, Size: 2501 bytes --]
Hi Jonathan,
Thanks for the response - this is really helpful. As I said in my original note, I'm casting about for usable advice that we can offer to people today. I want it to be unarguably true, and I want to understand the nuances so that I don't get tripped up by Gotcha's.
I'm currently focussed on OpenWrt, as that's a platform where it's easy to roll out fq_codel in current builds simply by downloading a couple packages. I'll work on a draft note with recommendations for OpenWrt and send it past the list for comments. Thanks again.
Rich
On Apr 9, 2015, at 6:02 PM, Jonathan Morton <chromatix99@gmail.com> wrote:
>
>> On 10 Apr, 2015, at 00:35, Rich Brown <richb.hanover@gmail.com> wrote:
>>
>> - Why do we provide an HTB-based shaper in simple.qos and simplest.qos?
>> - Do the shapers in these sqm-scripts actually limit bandwidth for various kinds of traffic? Might that not leave unused bandwidth?
>> - Or do they just shunt certain packets to higher or lower priority fq_codel tiers/bands/levels (terminology used in Dave's note below)?
>> - And if the latter, how does the "link" (I'm not sure of the proper term) know which of the tiers/bands/levels to dequeue next?
>
> The short answer is: because cake isn’t out in the real world yet. We’re working on it.
>
> HTB and IFB as used in those scripts is a stopgap solution, to take control of the bottleneck queue so that fq_codel can work on it. Cake includes a shaper which does the job more effectively and more efficiently.
>
> Ultimately, what we’d like is for fq_codel (or even something as sophisticated as cake) to be implemented in the *actual* bottleneck queues, so that artificially taking control of the bottleneck isn’t necessary.
>
>> I'll state up front that I'm not entirely clear on the distinction between shapers, qdisc's, IFBs, etc. But I'm groping around for a simple, clear recommendation for what we should tell people to do so they can:
>> a) Make their router work very well, with minimal latency
>> b) Spend their time more usefully than tweaking QoS/priority settings (for example, by actually playing the game that whose lag you're trying to minimize :-)
>
> If they’ve got a router with the sqm-scripts installed, use those and follow the directions. The implementation is a little messy, but it works and it keeps things simple for the user.
>
> When cake arrives, the implementation will get simpler and more efficient.
>
> - Jonathan Morton
>
[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 496 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Bloat] Questions about the use of HTB & fq_codel in simple.qos, simplest.qos
2015-04-10 12:14 ` Rich Brown
@ 2015-04-11 15:53 ` Kathleen Nichols
0 siblings, 0 replies; 4+ messages in thread
From: Kathleen Nichols @ 2015-04-11 15:53 UTC (permalink / raw)
To: bloat
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Just to clarify...I wrote the sfqcodel code in ns using existing sfq
code so I
could put something together quickly to show the benefits, most
specifically,
of binning acks and other short packets separately from longer data
transfer packets.
At the time, we had been explaining that AQM does one job (controlling
queue)
but that some form of separation/isolation was needed to deal with the
well known
ack issue. The work we do to understand issues and algorithms is often
different
from the work we do to deploy something. However, both are important.
On 4/10/15 5:14 AM, Rich Brown wrote:
> Hi Jonathan,
>
> Thanks for the response - this is really helpful. As I said in my
> original note, I'm casting about for usable advice that we can
> offer to people today. I want it to be unarguably true, and I want
> to understand the nuances so that I don't get tripped up by
> Gotcha's.
>
> I'm currently focussed on OpenWrt, as that's a platform where it's
> easy to roll out fq_codel in current builds simply by downloading
> a couple packages. I'll work on a draft note with recommendations
> for OpenWrt and send it past the list for comments. Thanks again.
>
> Rich
>
>
> On Apr 9, 2015, at 6:02 PM, Jonathan Morton
> <chromatix99@gmail.com> wrote:
>
>>
>>> On 10 Apr, 2015, at 00:35, Rich Brown
>>> <richb.hanover@gmail.com> wrote:
>>>
>>> - Why do we provide an HTB-based shaper in simple.qos and
>>> simplest.qos? - Do the shapers in these sqm-scripts actually
>>> limit bandwidth for various kinds of traffic? Might that not
>>> leave unused bandwidth? - Or do they just shunt certain
>>> packets to higher or lower priority fq_codel
>>> tiers/bands/levels (terminology used in Dave's note below)? -
>>> And if the latter, how does the "link" (I'm not sure of the
>>> proper term) know which of the tiers/bands/levels to dequeue
>>> next?
>>
>> The short answer is: because cake isn’t out in the real world
>> yet. We’re working on it.
>>
>> HTB and IFB as used in those scripts is a stopgap solution, to
>> take control of the bottleneck queue so that fq_codel can work on
>> it. Cake includes a shaper which does the job more effectively
>> and more efficiently.
>>
>> Ultimately, what we’d like is for fq_codel (or even something as
>> sophisticated as cake) to be implemented in the *actual*
>> bottleneck queues, so that artificially taking control of the
>> bottleneck isn’t necessary.
>>
>>> I'll state up front that I'm not entirely clear on the
>>> distinction between shapers, qdisc's, IFBs, etc. But I'm
>>> groping around for a simple, clear recommendation for what we
>>> should tell people to do so they can: a) Make their router work
>>> very well, with minimal latency b) Spend their time more
>>> usefully than tweaking QoS/priority settings (for example, by
>>> actually playing the game that whose lag you're trying to
>>> minimize :-)
>>
>> If they’ve got a router with the sqm-scripts installed, use
>> those and follow the directions. The implementation is a little
>> messy, but it works and it keeps things simple for the user.
>>
>> When cake arrives, the implementation will get simpler and more
>> efficient.
>>
>> - Jonathan Morton
>>
>
>
>
> _______________________________________________ Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat
>
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iEYEARECAAYFAlUpQ2cACgkQ+dkULylClLbLZwCePPF//nCLuOGKo6HUzYdx7k57
9y4AoORL7oNWNpOOUli9eWcBY3R3Px1Q
=j1yO
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-04-11 15:53 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <2E760E83-7224-4B9B-B918-B3EAD578E831@gmail.com>
[not found] ` <CAA93jw7cix_TGiTLMT78hH-VGcF92e6BD7BTmpxKVmU7yqSBAw@mail.gmail.com>
2015-04-09 21:35 ` [Bloat] Questions about the use of HTB & fq_codel in simple.qos, simplest.qos Rich Brown
2015-04-09 22:02 ` Jonathan Morton
2015-04-10 12:14 ` Rich Brown
2015-04-11 15:53 ` Kathleen Nichols
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox