[Bloat] queuebloat

Jim Gettys jg at freedesktop.org
Wed Apr 13 10:30:23 EDT 2011


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 at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/bloat




More information about the Bloat mailing list