Jump to content

Recommended Posts

Posted (edited)

One of my schools has recently had an upgrade to FTTC from a TalkTalk / OpenReach via a well known educational supplier whose name consists of just two letters. It was sold to us as having a minimum speed of X Mb/s. Sadly, they or their supplier seem to have confused the words "minimum" and "maximum", and instead of running for most of the time at around twice X Mb/s as we were promised, the connection only manages X Mb/s. During the install process, the engineers assured me that it was because of other people using the connection and that this was temporary.

 

To test this theory, I decided to run regular speed tests. Here's how it's done (minimal Linux experience required).

 

Requirements

- a linux machine. Any old debian derivative should do, other distros are likely to work. I used ubuntu server on a minimally resourced vmware VM. It'll need python 2.7 but that's likely to be pre-installed.

- speedtest_cli.py from https://github.com/sivel/speedtest-cli . Extract it from the "Download zip" link if you can't be bothered with git. (wget https://github.com/sivel/speedtest-cli/archive/master.zip)

 

Method

 

In your home dir, create a directory called speedtest. Put speedtest_ci.py in there.

 

Create batch file /home/[YOUR USERNAME]/speedtest/test.sh containing -

 

#!/bin/bash
DATE=$(date +"%Y-%m-%d_%H%M")
echo `date` >> /home/[YOUR USERNAME]/speedtest/speedtest.log
http_proxy="http://proxy.rmplc.co.uk:8080"
https_proxy="https://proxy.rmplc.co.uk:8080"
/home/[YOUR USERNAME]/speedtest/speedtest_cli.py --simple >> /home/[YOUR USERNAME]/speedtest/speedtest.log

 

Edit [YOUR USERNAME] appropriately. Drop / edit the proxy setting.

 

Make it executable -

chmod +x /home/[YOUR USERNAME]/speedtest/test.sh

 

Test it out. It should create a file called speedtest.log and write the results of each speed test to the end of it. (I suspect the ping time is in uS).

 

Mon Dec 1 10:12:18 GMT 2014
Ping: 1800000.0 ms
Download: 24.05 Mbits/s
Upload: 7.27 Mbits/s

 

Cron is a utility which can run commands at regular times. Each user can edit their cron entries with the crontab command.

 

Make a crontab entry with

crontab -e

 

Add this line

0 */4 * * *     export http_proxy="http://proxy.rmplc.co.uk:8080"; /home/[YOUR USERNAME]/speedtest/test.sh > /dev/null 2>&1

 

This will run your speed test at midnight then every 4 hours past (or 4, 8 am, midday, 4pm, 8pm, midnight).

 

When this has run for a day or two, your speedtest.log file will have a number of entries.

 

To just see the speeds -

egrep Down speedtest/speedtest.log

This shows just the lines containing the word "Down".

Download: 24.93 Mbits/s
Download: 25.05 Mbits/s
Download: 25.21 Mbits/s
Download: 25.10 Mbits/s
Download: 25.21 Mbits/s

 

To get speeds and times,

egrep 'GMT|Down' /home/[YOUR USERNAME]/speedtest/speedtest.log | perl -p -e 's/2014\n/ /'

This finds lines containing GMT or Down , passes them to Perl which finds "2014" followed by newline and strips out the newline.

 

egrep 'GMT|Down' /home/[YOUR USERNAME]/speedtest/speedtest.log | perl -p -e 's/2014\n/2014 /'
Thu Nov 27 16:02:01 GMT 2014 Download: 22.21 Mbits/s
Thu Nov 27 20:02:01 GMT 2014 Download: 25.17 Mbits/s
Fri Nov 28 00:02:01 GMT 2014 Download: 24.08 Mbits/s

 

To stop it running, edit crontab again

crontab -e

and remove the line previously inserted. Putting a hash in front of the line comments it out.

 

So, there we have it. Proof that our "minimum X Mb/s" line isn't what we were sold. Now for the fun part.

Edited by mats
minor edit
Posted

@mats any ISP that guarantees you speed on a standard FTTC line from BT is lying. BT's SLA to communication providers is "We guarantee a minimum of 12Mbit of speed for 90% of the time during the busiest 3 hour period". That's it.........

 

The only way to guarantee speeds is use full GEA-FTTC or EoFTTC which gives a minimum speed guarantee of xyz all day every day. This is more expensive though and I think at the moment we are the only ISP that offers this as standard on our higher end packages although I could be wrong.

 

If you need any more tech info let me know.

 

Good luck

 

Dave

Posted

Ta for the replies.

 

It was sold as "up to x, indicative y" which I appreciate isn't the same as "it'll run at z". However, it's running at y and never gets any higher (y is over twice x) so have an uncomfortable feeling that there's wriggle room which is about to be utilised.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...