General list for discussing Bufferbloat
 help / color / mirror / Atom feed
From: rjmcmahon <rjmcmahon@rjmcmahon.com>
To: Dave Taht <dave.taht@gmail.com>
Cc: bloat <bloat@lists.bufferbloat.net>, Rpm <rpm@lists.bufferbloat.net>
Subject: Re: [Bloat] [Rpm] receive window bug fix
Date: Sat, 03 Jun 2023 11:56:12 -0700	[thread overview]
Message-ID: <709fd354372c370233f4b4eb33bab216@rjmcmahon.com> (raw)
In-Reply-To: <CAA93jw7fUq4+4=UQjpuTr5tEs5h70LxD8nK5frUwDEr59cxGFg@mail.gmail.com>

> these folk do good work, and I loved the graphs
> 
> https://blog.cloudflare.com/unbounded-memory-usage-by-tcp-for-receive-buffers-and-how-we-fixed-it/

Very cool. Thanks for sharing.

I've been considering adding stress tests to iperf 2. Looks like 
Cloudfare has at least two

Small reads & writes with short delay to stress receive window 
processing per

   At the sending host, run a TCP program with an infinite loop, sending 
1500B packets, with a 1 ms delay between each send.
   At the receiving host, run a TCP program with an infinite loop, 
reading 1B at a time, with a 1 ms delay between each read.

And then, rx buffer limit tests, from 
https://blog.cloudflare.com/optimizing-tcp-for-high-throughput-and-low-latency/

   reads as fast as it can, for five seconds this is called fast mode, 
opens up the window
   calculates 5% of the high watermark of the bytes reader during any 
previous one second
   for each second of the next 15 seconds: this is called slow mode
   reads that 5% number of bytes, then stops reading
   sleeps for the remainder of that particular second
   most of the second consists of no reading at all
   steps 1-3 are repeated in a loop three times, so the entire run is 60 
seconds

   This has the effect of highlighting any issues in the handling of 
packets when the buffers repeatedly hit the limit.

Curious about any other traffic scenarios driven by socket read/write 
behaviors that could be useful. Or any others that might apply to WiFi 
aggregation.

Then, if there is a way to generalize these types of send/read/delay 
graphs with a parametric command line?

Bob

      parent reply	other threads:[~2023-06-03 18:56 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-03  8:03 [Bloat] " Dave Taht
2023-06-03 18:20 ` [Bloat] [Rpm] " Aaron Wood
2023-06-03 19:15   ` rjmcmahon
2023-06-03 18:56 ` rjmcmahon [this message]

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=709fd354372c370233f4b4eb33bab216@rjmcmahon.com \
    --to=rjmcmahon@rjmcmahon.com \
    --cc=bloat@lists.bufferbloat.net \
    --cc=dave.taht@gmail.com \
    --cc=rpm@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