Historic archive of defunct list bloat-devel@lists.bufferbloat.net
 help / color / mirror / Atom feed
From: "Eggert, Lars" <lars@netapp.com>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: "bloat-devel@lists.bufferbloat.net" <bloat-devel@lists.bufferbloat.net>
Subject: Re: One-way delay measurement for netperf-wrapper
Date: Fri, 29 Nov 2013 08:45:06 +0000	[thread overview]
Message-ID: <DAC15E4F-A5A8-499F-AB24-34AA056A0985@netapp.com> (raw)
In-Reply-To: <87zjoojr5u.fsf@toke.dk>

[-- Attachment #1: Type: text/plain, Size: 1624 bytes --]

Hi,

On 2013-11-28, at 19:51, Toke Høiland-Jørgensen <toke@toke.dk> wrote:
> So I've been thinking about adding one-way delay measurement to
> netperf-wrapper, but thought I'd solicit some input on how best to do
> that.

that would be a great addition. But I think it will require some fundamental change to the wrapper (actually , probably to netperf.) Or at least a solution a complete solution would.

If I remember correctly, the wrapper runs various netperf flows to generate load, and in parallel runs a ping session in order to measure latency.

That works fine if all these flows go through all the same bottlenecks, but when they don't (because the switch does something funky for ICMP, etc.) it fails. It also doesn't account for stack-induced latencies.

I'd really like to see some measurement tool (netperf, flowgrind, etc.) grow support for measuring latencies based on the actual load-generating data flow. Ideally and assuming fully sync'ed clocks, I'd like to timestamp each byte of a TCP stream when an app does write(), and I'd like to timestamp it again when the receiving app read()s it. The difference between the two timestamps is the latency that byte saw end-to-end.

(Yes, you wouldn't want/need to do this for each byte, I'm just speaking conceptually.)

That measurement would include the stack/driver latencies which you don't currently capture with a parallel ping. For datacenter scenarios with very low RTTs, these sources of latency begin to matter.

I think that Stas' thrulay tool did measure latencies in this way, but it has accumulated some serious bitrot.

Lars

[-- Attachment #2: Message signed with OpenPGP using GPGMail --]
[-- Type: application/pgp-signature, Size: 273 bytes --]

  reply	other threads:[~2013-11-29  8:45 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-28 18:51 Toke Høiland-Jørgensen
2013-11-29  8:45 ` Eggert, Lars [this message]
2013-11-29  9:42   ` Toke Høiland-Jørgensen
2013-11-29 10:20     ` Eggert, Lars
2013-11-29 13:04       ` Toke Høiland-Jørgensen
2013-11-29 14:30         ` Eggert, Lars
2013-11-29 16:55           ` Dave Taht
2013-12-02 18:11     ` Rick Jones
2013-12-02 18:20       ` Toke Høiland-Jørgensen
2013-11-28 20:30 Hal Murray
2013-12-02  5:45 Hal Murray
2013-12-02  8:34 ` Toke Høiland-Jørgensen

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=DAC15E4F-A5A8-499F-AB24-34AA056A0985@netapp.com \
    --to=lars@netapp.com \
    --cc=bloat-devel@lists.bufferbloat.net \
    --cc=toke@toke.dk \
    /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