From: Jonathan Morton <chromatix99@gmail.com>
To: David Lang <david@lang.hm>
Cc: Kathleen Nichols <nichols@pollere.com>,
bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] Open Source Speed Test (was fast.com - Netflix's speed monitoring)
Date: Sat, 27 Aug 2016 15:16:08 +0300 [thread overview]
Message-ID: <69C777F5-0776-452D-8AE0-4954948FDC2F@gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1608261758530.18129@nftneq.ynat.uz>
> On 27 Aug, 2016, at 04:06, David Lang <david@lang.hm> wrote:
>
>>> so you can call it large queues instead of large buffers, but the result
>>> is that packets end up being 'in transit' for a long time.
>>
>> No, a large queue is a bunch of packets waiting in a queue (which is contained in a buffer). A large buffer with zero or a small number of packets in it is not going to result in packets being in transit for a long time.
>
> Is a large buffer that is never used really a large buffer? or does whatever prevents it from being used really turn it into a small buffer?
> I don't understand what you are trying to call out by trying to change the terminology.
If we’re talking terminology, I think we have to make better distinctions to avoid confusion. There is a qualitative difference between a managed queue and both a large and small unmanaged queue; none of them behave similarly to each other.
A managed queue tries to keep itself empty, but does so by means of congestion signalling (marking or dropping a relatively small proportion of traffic), rather than placing a hard limit on queue length. It *can* therefore fill up in various circumstances, including where the traffic simply ignores those signals, so its *peak* induced delay can be large; this is true of both flow-isolating and flow-blind queues. However, the managed queue can achieve lower *average* induced delay than the large queue, and lower packet loss and higher link utilisation than the small queue, when given the buffer space of the large queue to work with.
Flow-isolation is an orthogonal property here; both managed and unmanaged implementations exist. A flow-isolating queue aims to keep the induced delay to sparse flows, which use less than their fair share of the link, lower than to bulk flows; also to minimise the impact of unresponsive flows on responsive traffic. The peak induced latency to any given bulk flow thus becomes less important than the peak induced latency to sparse flows. With a flow-blind queue, all traffic suffers the same induced delay at any given moment, so the overall peak induced latency remains important.
Where I think the confusion arises here is between the *capacity* of the queue, which is static and often large for a managed queue, and the dynamic *backlog* of that queue, which is what a managed queue attempts to actively control. In the case of a flow-isolating queue, there is also a distinction between the overall backlog of the queue, and the backlog of an individual subqueue.
I have noticed that some bufferbloat tests employ an unresponsive traffic burst as the latency measurement stream - particularly Netalyzr’s. This does capture the difference between a large and small capacity queue, but is incapable of detecting AQM or flow-isolation, which are the preferred solutions to bufferbloat, unless the AQM is extremely aggressive when faced with unresponsive traffic. A sufficiently aggressive response to satisfy such a test would however hurt goodput and packet loss on normal traffic, and would thus be counterproductive.
- Jonathan Morton
next prev parent reply other threads:[~2016-08-27 12:16 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-23 18:42 Livingood, Jason
2016-08-24 16:08 ` Stephen Hemminger
2016-08-24 17:28 ` Livingood, Jason
2016-08-26 23:13 ` Kathleen Nichols
2016-08-26 23:20 ` David Lang
2016-08-26 23:37 ` Kathleen Nichols
2016-08-27 1:06 ` David Lang
2016-08-27 5:02 ` grenville armitage
2016-08-27 12:16 ` Jonathan Morton [this message]
2016-08-27 0:20 ` Benjamin Cronce
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/bloat.lists.bufferbloat.net/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=69C777F5-0776-452D-8AE0-4954948FDC2F@gmail.com \
--to=chromatix99@gmail.com \
--cc=bloat@lists.bufferbloat.net \
--cc=david@lang.hm \
--cc=nichols@pollere.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