General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: Jim Gettys <jg@freedesktop.org>
To: bloat@lists.bufferbloat.net
Subject: Re: [Bloat] queuebloat
Date: Wed, 13 Apr 2011 10:30:23 -0400	[thread overview]
Message-ID: <4DA5B37F.7040504@freedesktop.org> (raw)
In-Reply-To: <201104131119.p3DBJIBu025003@bagheera.jungle.bt.co.uk>

On 04/13/2011 07:19 AM, Bob Briscoe wrote:
> Folks,
>
> [This is to repeat to the list one of many conversations I had with 
> Jim Gettys at the recent IETF...]
>
> The term bufferbloat seemed to hit a rich vein in marketing the 
> importance of this problem 
> <http://www.google.com/trends?q=bufferbloat>. But actually it's a 
> misleading name that will confuse (unsavvy) equipment vendors when 
> they come to work out what to do about it.
>
> The problem is actually queuebloat, not bufferbloat. The buffer is the 
> memory set aside for the queue. The queue is how much of the memory is 
> used to store packets or frames.

I think you are picking nits on the naming, though if you'd had the 
suggestion last fall, I might have gone for it

And there are buffers that hide in systems that are not packet queues, 
that people also should be aware
of (e.g. encryption buffers, error correction buffers, buffers in 
applications used for pipelining, etc).
So I'm not convinced that queuebloat is a better term, as it is less 
general than the phenomena I was trying
to describe.  In any case, I think it's water under the dam at this date.

>
> We don't want vendors to (necessarily*) reduce the size of the buffer, 
> we want them to reduce the size of the standing queue. They can do 
> that with active queue management (AQM) (if we only knew how to code 
> it robustly). Ideally with ECN too, but AQM would be a good start.

Some of these buffers are truly bloated, and/or not sized even 
approximately related to the bandwidth available (e.g. the 1.2 seconds 
of buffering I observed on my DOCSIS3 modem, or similar horror stories 
in DSL), or the 1000 packet transmit queue in Linux.  These buffers are 
often sized by all the memory that is available, and the hardware 
vendors can't get small enough chips to "correctly" size them, (as 
though we knew what the bandwidth was, or the delay was, one of the 
mythologies that got us into this mess).

One of the first steps (well short of the nirvana of AQM), is to at 
least get the buffers sized to something sane, and related to the 
bandwidth the hardware is being operated at. And as each generation of 
new kit is built (and often as a market requirement has to plug into 
downward compatible hardware), it's been getting worse.

  This is what the cable folks are in the middle of doing; it's 
obviously safe to at least have the buffer sizes approximately 
proportional to the bandwidth at which the device is operating 
(similarly for the Linux transmit queue; if you are at 100Mbps, you can 
cut the size by a factor of 10 without any danger).  With the ability to 
go hundreds of megabits/second but most customers paying for 10-20Mbps, 
it is pretty obvious the buffer size had better be related to the 
bandwidth of operation, and never be a static buffer sized for the worst 
case.

Let's not lose sight of immediate, safe mitigations that are at hand, 
while working on AQM with or without ECN, though that is the only real, 
long term solution.

>
> A reasonable* sized buffer is still needed to absorb bursts without 
> loss. If builders of kit make their buffers smaller in response to our 
> criticism, during bursts users will experience loss rather than delay. 
> That will lead transports to wait for a timeout to detect these 
> losses. So small buffers would just introduce a new cause of poor 
> responsiveness. The focus should be on small queues, not small buffers.

See above about the observed buffer sizes, along with the fact that the 
buffers/queues are not sized to the operating bandwidth.  See the 
frightening scatterplot of the ICSI netalyzr data, and keep in mind that 
that dataset under detected bufferbloat.  Multi-second size buffers are 
commonplace.

>
> OK, maybe it's not a good idea to ditch a catch-phrase that has 
> captured the public imagination. But we should be careful to nuance 
> its meaning when explaining to kit builders what they should do about it.

Yup.  I agree that nuance is necessary.  I think we have to be firm that 
AQM is the only real solution, but there is mitigation they can often 
apply quickly to make the situation less horrible.
                                         - Jim

>
> Cheers
>
>
> Bob
> ___________
> * You don't need buffers larger than the timeouts in typical transport 
> protocols, otherwise a burst can build up more delay than a transport 
> is prepared to wait for. Then you start wasting energy maintaining 
> unnecessary amounts of fast memory.
>
>
> ________________________________________________________________
> Bob Briscoe,                                BT Innovate & Design
> _______________________________________________
> Bloat mailing list
> Bloat@lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat


  reply	other threads:[~2011-04-13 14:30 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-13 11:19 Bob Briscoe
2011-04-13 14:30 ` Jim Gettys [this message]
2011-04-13 16:29   ` Bob Briscoe
2011-04-13 17:21     ` Jim Gettys
2011-04-23  7:55 ` Richard Scheffenegger

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=4DA5B37F.7040504@freedesktop.org \
    --to=jg@freedesktop.org \
    --cc=bloat@lists.bufferbloat.net \
    /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