From: Jonathan Morton <chromatix99@gmail.com>
To: grenville armitage <garmitage@swin.edu.au>
Cc: bloat-devel <bloat-devel@lists.bufferbloat.net>,
bloat <bloat@lists.bufferbloat.net>
Subject: Re: [Bloat] Progress with latency-under-load tool
Date: Sun, 20 Mar 2011 12:45:10 +0200 [thread overview]
Message-ID: <E427A241-64B8-456A-8147-26349E80E504@gmail.com> (raw)
In-Reply-To: <4D829B58.1070601@swin.edu.au>
[-- Attachment #1: Type: text/plain, Size: 2621 bytes --]
Attached is the initial version of the loadlatency tool. I'm getting some rather interesting results from it already, although it does take a very long time to run.
It works under Linux, Cygwin and MacOS X on both little- and big-endian machines (and between machines of different byte-sexes), and therefore it should also work under FreeBSD and other UNIXes. I haven't yet tried compiling it for iOS or Android.
It produces useful results even when one of the machines is rather old and slow, despite using a proper PRNG for traffic generation. My ancient Pentium-MMX proved capable of generating at least 4.4 MB/s of traffic steadily, and probably produces spikes of even greater bandwidth. Anything of Y2K vintage or newer should be able to saturate it's network with this.
There are four measures produced: Upload Capacity, Download Capacity, Link Responsiveness and Flow Smoothness. All of these are reported in "bigger is better" units to help deal with Layers 8 and 9.
The Capacity calculations are a bit complex to understand. For each flow (in either direction), the average goodput is measured over the entire lifetime of the flow. All of the flows in each direction for that scenario are the aggregated by taking the harmonic mean and multiplying by the number of flows; this biases the total downwards if the flows were mutually unfair. Finally, the relevant measures across all scenarios are aggregated using the harmonic mean, thus biasing the overall measure towards cases of under-utilisation. The totals are then reported in binary kilobytes per second.
The Link Responsiveness measure is much easier. I simply take the maximum latency of the "pinger" channel (which is also used for commanding flows to stop) and invert it to produce a measure in Hertz. This is rounded down to the next integer for display; if you see a zero here (which is surprisingly likely), it means that a latency of more than one second was encountered at some point during the entire test.
The Flow Smoothness measure refers to the application-level data inter-arrival timings. The maximum delay between data chunks arriving is measured across all flows in all scenarios, but excludes the first megabyte of each flow so as to avoid picking up the RTT during TCP startup.
Here are some numbers I got from a test over a switched 100base-TX LAN:
Upload Capacity: 1018 KiB/s
Download Capacity: 2181 KiB/s
Link Responsiveness: 2 Hz
Flow Smoothness: 1 Hz
Horrible, isn't it? I deliberately left these machines with standard configurations in order to show that.
- Jonathan
[-- Attachment #2: loadlatency.tar.gz --]
[-- Type: application/x-gzip, Size: 6651 bytes --]
next prev parent reply other threads:[~2011-03-20 10:45 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-16 2:31 Jonathan Morton
2011-03-16 17:12 ` Rick Jones
2011-03-17 23:38 ` grenville armitage
2011-03-19 17:44 ` Jonathan Morton
2011-03-20 10:45 ` Jonathan Morton [this message]
2011-03-20 20:33 ` grenville armitage
2011-03-20 20:53 ` Dave Täht
2011-03-20 21:52 ` Jonathan Morton
2011-03-20 22:32 ` Dave Täht
2011-03-20 22:47 ` Dave Täht
2011-03-20 22:52 ` Jonathan Morton
2011-03-20 22:55 ` Dave Täht
2011-03-20 23:42 ` Dave Täht
2011-03-20 21:50 ` [Bloat] Some results of the latency under load tool Dave Täht
2011-03-20 22:24 ` Jonathan Morton
[not found] ` <m3d3llgln8.fsf@yahoo.com>
2011-03-21 6:43 ` [Bloat] Progress with latency-under-load tool Jonathan Morton
2011-03-22 1:13 ` Kim Hawtin
2011-03-22 7:10 ` Jonathan Morton
2011-03-23 10:33 ` Otto Solares Cabrera
2011-03-23 11:26 ` Jonathan Morton
2011-03-23 19:27 ` Otto Solares
2011-03-23 20:40 ` Jonathan Morton
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=E427A241-64B8-456A-8147-26349E80E504@gmail.com \
--to=chromatix99@gmail.com \
--cc=bloat-devel@lists.bufferbloat.net \
--cc=bloat@lists.bufferbloat.net \
--cc=garmitage@swin.edu.au \
/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