From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from nm23.access.bullet.mail.sp2.yahoo.com (nm23.access.bullet.mail.sp2.yahoo.com [98.139.44.150]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by huchra.bufferbloat.net (Postfix) with ESMTPS id 15830200666 for ; Sun, 5 May 2013 12:11:02 -0700 (PDT) Received: from [98.139.44.105] by nm23.access.bullet.mail.sp2.yahoo.com with NNFMP; 05 May 2013 19:11:02 -0000 Received: from [67.195.22.110] by tm10.access.bullet.mail.sp2.yahoo.com with NNFMP; 05 May 2013 19:11:02 -0000 Received: from [127.0.0.1] by smtp106.rog.mail.gq1.yahoo.com with NNFMP; 05 May 2013 19:11:02 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rogers.com; s=s1024; t=1367781062; bh=chjAI6G+lLN9yRCcPgbd0Nqj8Tjwud0h+IHE+s5ApeQ=; h=X-Yahoo-Newman-Id:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:X-Rocket-Received:Message-ID:Date:From:Reply-To:User-Agent:MIME-Version:To:Subject:References:In-Reply-To:X-Enigmail-Version:Content-Type; b=sywjfXNzVPMCmyB08X+2J637oHcndk3CPrn40zlV4s+P9Mc6uwtCGzYB9c13RWFIZEiCCtoHu6FqLSH0pwDuZkJr8l0mTJrvdj9py4DIyZTP2JTa5N9ZR7K9Wc30D6vS6TJOQ4htMpXLrV1amyPOhiWfUdGS8ykfX+PoHdTqkW8= X-Yahoo-Newman-Id: 227429.60710.bm@smtp106.rog.mail.gq1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: Tii_u2wVM1l6Lf5E4Si4du08wv8uJDclE36qYL6t5A._1m2 RQIJ9dUcsIxnkejEK2eIuUIgz0SOLIKi9JOl7qwO_7o5rD0Cq_RfRzGN01pz 3ekIeLknUMjknsfaWvSNEdG2bDZrf7FcpxhmS5N297CeGWF39a6cDDR3n41j RJHxuqnlvqR2DX.RbVIb3XVyVN6JLJoEmt0qo4yuL2lZ.niPR7_gtfSJrVfp pyF_c5hbaRIrCj3axks5G4CIVdFST1UhyXXPWqOgc_pW4kee78dmrXjVwKvU UJytv_um3yuCEKTLQsNlhvjEhz3pj__nbMfVLL3dTv.4Fh9mbt0w6U9cu6eq LKuHdxXlslCvIPAXdUc5WvGcTRB158RZhrKgEJpiP1kPl9ch9nwuDb263qXg UXSw97PxWYfqhW899vt3bXFzexLJC9edYuVWgicgJrSIwIW8H4Y.fJ1solD. lzaYJpIwBPq0W1z_vsFbnSphAnJS5 X-Yahoo-SMTP: sltvjZWswBCRD.ElTuB1l9j6s9wRYPpuyTNWOE5oEg-- X-Rocket-Received: from [192.168.1.103] (davec-b@99.225.204.110 with plain) by smtp106.rog.mail.gq1.yahoo.com with SMTP; 05 May 2013 12:11:02 -0700 PDT Message-ID: <51856AE3.3070401@rogers.com> Date: Sat, 04 May 2013 16:09:07 -0400 From: David Collier-Brown User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130110 Thunderbird/17.0.2 MIME-Version: 1.0 To: bloat@lists.bufferbloat.net References: In-Reply-To: X-Enigmail-Version: 1.5.1 Content-Type: multipart/alternative; boundary="------------090403070004030200040804" Subject: [Bloat] Representing normal vs bloated systems in diagrams (was: A long-delayed thought on "three bars") X-BeenThere: bloat@lists.bufferbloat.net X-Mailman-Version: 2.1.13 Precedence: list Reply-To: davecb@spamcop.net List-Id: General list for discussing Bufferbloat List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 May 2013 19:11:03 -0000 This is a multi-part message in MIME format. --------------090403070004030200040804 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Quite some time ago, Dave Taht wondered about how one would represent bloat-induced performance problems in a diagram, and wondered if one could have something as simple as the "three bars" diagram you see on cell phones. I was working on a related problem, and thought about a diagram that looked like this (a gif, and ascii in case the gif is filtered out by the list) In ascii art, it might look like this: ======++++++++++++ - + - + - + - + In the ascii, the double line is both "good" and "bad" system performance, and they are the same up to a load of about 8, where the "bad" line, shown as minus signs, starts to degrade. The"good" line, shown as plus signs, stays good until a much higher load, and only then starts diving down... The "good" line is the performance of the system when it's feeling well, and is operating within it's limits. Pretty much a straight line, possibly with some noise bouncing it up and down. Way out to the right of the figure, it reaches capacity and starts curling downwards. The "bad" line is the system when it's artificially degraded by bufferbloat, and performance takes a dive. This is the usual "hockey stick ("_/") diagram turned on it's head for clarity. The X axis is load, the Y is performance, and anyone used to diagrams where "high is good" will see this system is suffering. I think this is a fair representation, and *visually* attractive, but I'm actually glossing over the question of units a bit. A hockey-stick curve is response time versus load. This is something like expected response time at the top and increasing response time as you go *downwards*. Can anyone suggest a less arbitrary metric? The best of all possible worlds would be a non-dimensional metric, so similar data from both small and large systems could be compared with one another.... Perhaps twice normal, three time normal, etc??? Returning to the representation problem, I think the simplest possible diagram would literally be three bars, with the tallest representing the expected response time, and the others some significant degradations from that. Two bars might be the doubling of response time, one the tripling of it, and so on. --dave -- David Collier-Brown, | Always do right. This will gratify System Programmer and Author | some people and astonish the rest davecb@spamcop.net | -- Mark Twain (416) 223-8968 --------------090403070004030200040804 Content-Type: multipart/related; boundary="------------020708060809020009080304" --------------020708060809020009080304 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Quite some time ago, Dave Taht wondered about how one would represent bloat-induced performance problems in a diagram, and wondered if one could have something as simple as the "three bars" diagram you see on cell phones.

I was working on a related problem, and thought about a diagram that looked like this  (a gif, and ascii in case the gif is filtered out by the list)

In ascii art, it might look like this:
======++++++++++++
               -                              +
                -                                +
                 -                                  +
                 -                                    +
In the ascii, the double line is both "good" and "bad" system performance, and they are the same up to a load of about 8, where the "bad" line, shown as minus signs, starts to degrade.  The"good" line, shown as plus signs, stays good until a much higher load, and only then starts diving down...


The "good" line is the performance of the system when it's feeling well, and is operating within it's limits. Pretty much a straight line, possibly with some noise bouncing it up and down.  Way out to the right of the figure, it reaches capacity and starts curling downwards.  The "bad" line is the system when it's artificially degraded by bufferbloat, and performance takes a dive.

This is the usual "hockey stick ("_/") diagram turned on it's head for clarity. The X axis is load, the Y is performance, and anyone used to diagrams where "high is good" will see this system is suffering.

I think this is a fair representation, and *visually* attractive, but I'm actually glossing over the question of units a bit.

A hockey-stick curve is response time versus load.  This is something like expected response time at the top and increasing response time as you go *downwards*.  

Can anyone suggest a less arbitrary metric?  The best of all possible worlds would be a non-dimensional metric, so similar data from both small and large systems could be compared with one another.... Perhaps twice normal, three time normal, etc???

Returning to the representation problem, I think the simplest possible diagram would literally be three bars, with the tallest representing the expected response time, and the others some significant degradations from that.  Two bars might be the doubling of response time, one the tripling of it, and so on.

--dave

-- 
David Collier-Brown,         | Always do right. This will gratify
System Programmer and Author | some people and astonish the rest
davecb@spamcop.net           |                      -- Mark Twain
(416) 223-8968
--------------020708060809020009080304 Content-Type: image/gif; name="Bloat_Degradation_2.gif" Content-Transfer-Encoding: base64 Content-ID: Content-Disposition: inline; filename="Bloat_Degradation_2.gif" R0lGODdhNAJNAfcAABwaHGSOtLTK3ISChMyOfBRWjNzm7PxCDORqRLSurFRWVIyuzPzKvARG hOxaLIyOjPT29NR+ZPyObEx6rPyulPzm3Dw6PDRqnMza5PxqPNza3PyehHRydOxiPHyevPRO HJyenPy+rKS+1MzKzBxGfCxinOTu9PxWJPx+XPzazCwqLLy+vKyurFyGtPTy9Px2TGyWvLyi nCRajGRmZAxOjPz+/PyWdPy2nExKTER2pPymjLzS5PxKFNx2XJy2zIySrPz29GyGpPxOHKSi pPyGZBxelOzq7PzSxAxGfGSCnPxyTISmxPzGtPxeLPzi1Pzu5LymnCQiJGyStBxWlOTm5PxG DNxyVLS2tFxeXOxeNJSWlFSCrERCRDxypNTi7PxuTNzi7Hx6fPxiNISixNTS1Ozu7DQyNMTC xPyahPy6rPyqjKSqtPzy9LzK3IyKjORuVJSuzPzOvARKjPRWLPT6/NSGdPySdFR6nPyynPzq 5DxupNTe7PxuRPyihHyixPRSJPzCrIyqxLTG3BRSjMSWhKzG3GxubFRSVIyatFxaXJSSlMSe lGxqbLy6vGRiZJyanBxOhKzC1GSKtHSWvMTS5HSKpAxKjLyqrOTq9OTi5KyqrNzq9LSytNSC bMze7PxaLPyCXPze1Px6VCRelPyafPy6pER6pJy61Pz69PxSHPyKZPzWzPzy7LyqpPxmPOzy 9BweHGSStISGhEx+rDw+PDRunNze3HR2dMzOzCxmnCwuLFyKtAxSjExOTNx6XKSmpCQmJBxa lERGRHx+fNTW1DQ2NMTGxLzO3JSyzPRaLHSavMTW5BRWlPxCFORqTARGjPT2/PyOdPyunPzm 5PxqRHyexPROJPxWLPza1KyutPx2VPyWfPy2pPymlPxKHJy21PzGvPxeNPzi3Pzu7GySvPxG FPxiPOzu9PyqlPzOxPyijPzCtPyCZER6rPz6/PxSJPyKbAArdABt1wAJ/yh4AHl1ANfXAP// AADLPwDAaABojwBLQwCoqAB0dAB4eABLSywAAAAANAJNAQAI/gBrCBxIsKDBgwgTKlzIsKHD hxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6fP n0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3b 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 ADs= --------------020708060809020009080304-- --------------090403070004030200040804--