[Cerowrt-devel] speedtest.sh script available

Dave Taht dave.taht at gmail.com
Tue Mar 25 12:35:15 EDT 2014


I suggest renaming it to something like bloattest, to avoid copyright
and trademark issues. If you can come up with a sexier name,
goferit... (I have had a name in hiding for a while, "lul" - latency
under load,
you are welcome to it)

ahh... my old friend... awk...

If you change the script to use /bin/sh it works directly on cero!

I have longed to have some sort of sane test server infrastructure in
place, tied to a domain that did geographic dns, for a long time. Are
you going to incur any costs in doing this? community driven and
ad-supported seems like a way to go except that shell scripts don't
have ads...

I'd argue in favor of throwing out the first 25 sec of the test if you
aren't already due to speedboost.

1) This is a box connected directly to the internet:

cero2 at snapon:~/t$ ./speedtest.sh
Testing against netperf.richb-hanover.com while pinging gstatic.com
(60 seconds in each direction)
.......................................................................
 Download:  261.94 Mbps
  Latency: (in msec, 71 pings, 0.00% packet loss)
      Min: 0.868
    10pct: 0.930
   Median: 1.070
      Avg: 1.056
    90pct: 1.150
      Max: 1.420
.......................................................................
   Upload:  333.91 Mbps
  Latency: (in msec, 71 pings, 0.00% packet loss)
      Min: 0.812
    10pct: 0.900
   Median: 1.020
      Avg: 1.273
    90pct: 2.040
      Max: 2.770

Yes, I'm less than a ms away from gstatic.

cero2 at snapon:~/t$ ping gstatic.com
PING gstatic.com (74.125.239.143) 56(84) bytes of data.
64 bytes from nuq05s02-in-f15.1e100.net (74.125.239.143): icmp_req=1
ttl=59 time=0.924 ms
64 bytes from nuq05s02-in-f15.1e100.net (74.125.239.143): icmp_req=2
ttl=59 time=0.915 ms

2) Run from my nuc

d at nuc:~/t$ ./speedtest.sh
Testing against netperf.richb-hanover.com while pinging gstatic.com
(60 seconds in each direction)
.......................................................................
 Download:  21.6 Mbps
  Latency: (in msec, 71 pings, 0.00% packet loss)
      Min: 16.100
    10pct: 16.600
   Median: 19.700
      Avg: 19.966
    90pct: 23.900
      Max: 27.600
.......................................................................
   Upload:  3.55 Mbps
  Latency: (in msec, 71 pings, 0.00% packet loss)
      Min: 15.900
    10pct: 17.500
   Median: 22.800
      Avg: 22.821
    90pct: 26.400
      Max: 32.000

I then tried the armory's comcast connection...

3) Run from cero

root at dave-gw:~# ./speedtest.sh
Testing against netperf.richb-hanover.com while pinging gstatic.com
(60 seconds in each direction)
.............................................................
 Download:  19.48 Mbps
  Latency: (in msec, 61 pings, 0.00% packet loss)
      Min: 16.782
    10pct: 17.921
   Median: 20.288
      Avg: 21.067
    90pct: 25.415
      Max: 38.299
.............................................................
   Upload:  3.92 Mbps++
  Latency: (in msec, 61 pings, 0.00% packet loss)
      Min: 18.355
    10pct: 20.160
   Median: 24.675
      Avg: 24.385
    90pct: 27.600
      Max: 30.972

So we still have some variance in calculating up/download speeds...

4) Run from cero with sqm off:

root at comcast-gw:~# ./speedtest.sh
Testing against netperf.richb-hanover.com while pinging gstatic.com
(60 seconds in each direction)
.............................................................
 Download:  28.1 Mbps

+the sqm system is set to 30000 down

  Latency: (in msec, 61 pings, 0.00% packet loss)
      Min: 17.246
    10pct: 151.227
   Median: 219.129
      Avg: 197.213
    90pct: 230.134
      Max: 237.868
..............................................................
   Upload:  4.55 Mbps
  Latency: (in msec, 62 pings, 0.00% packet loss)
      Min: 16.744
    10pct: 384.688
   Median: 586.156
      Avg: 579.208
    90pct: 755.223
      Max: 872.024

5) for comparison, a rrul test is at
http://snapon.lab.bufferbloat.net/~d/richb-hannover/richb-compare.svg

So not doing 4 up and down at the same time gives you latency results
at max that are quite a bit
larger than a single flow (which makes sense for tcp without
congestion avoidance working)

and microscopic upload performance compared to what the upload along claims.

sqm settings

config queue 'ge00'
    option interface 'ge00'
    option script 'simplest.qos'
    option linklayer 'none'
    option enabled '1'
    option download '30000'
    option upload '4400'
    option qdisc_advanced '1'
    option ingress_ecn 'ECN'
    option egress_ecn 'ECN'
    option qdisc_really_really_advanced '1'
    option iqdisc_opts 'target 5ms'
    option eqdisc_opts 'target 5ms'
    option qdisc 'nfq_codel'




On Tue, Mar 25, 2014 at 8:16 AM, Rich Brown <richb.hanover at gmail.com> wrote:
> I have created a 'speedtest.sh' shell script that simulates the http://speedtest.net, but does it one better.
>
> The default options for the script do a separate TCP_MAERTS and TCP_STREAM for 60 seconds while collecting ping latency. The output of the script shows the down/upload speed as well as a summary of the ping latency, including min, max, average, median, and 10th and 90th percentiles.
>
> The script makes it easier to optimize my settings because it makes the latency figures more concrete. (I used to eyeball the ping output, saying, "Hmmm. I think there were fewer outliers than before...")
>
> You can see the script on the "Quick Test for Bufferbloat" page on the wiki at:
>
> http://www.bufferbloat.net/projects/cerowrt/wiki/Quick_Test_for_Bufferbloat#Speedtestsh-shell-script
>
> Enjoy!
>
> Rich
> _______________________________________________
> Cerowrt-devel mailing list
> Cerowrt-devel at lists.bufferbloat.net
> https://lists.bufferbloat.net/listinfo/cerowrt-devel



-- 
Dave Täht

Fixing bufferbloat with cerowrt: http://www.teklibre.com/cerowrt/subscribe.html



More information about the Cerowrt-devel mailing list