Internet speed test using Terminal

From Ever changing code
Jump to navigation Jump to search

Speedtest.net

sudo apt-get install python-pip
 pip install speedtest-cli

or:

sudo apt-get install python-setuptools
 sudo easy_install speedtest-cli

This 2nd solution worked on AWS Ubuntu 13.04 Server and it needed ~3Mb (python-setuptools) to download versus ~80Mb for python-pip

Run the speedtest:

$ speedtest-cli 
 Retrieving speedtest.net configuration...
 Retrieving speedtest.net server list...
 Testing from Global Crossing (217.156.150.69)...
 Selecting best server based on latency...
 Hosted by Gigaclear PLC (Slough) [8.91 km]: 13.461 ms
 Testing download speed........................................
 Download: 23.93 Mbit/s
 Testing upload speed..................................................
 Upload: 12.27 Mbit/s

Wget

wget --output-document=/dev/null http://speedtest.wdc01.softlayer.com/downloads/test500.zip
wget -O /dev/null http://speedtest.sea01.softlayer.com/downloads/test100.zip
curl -o /dev/null http://speedtest.sea01.softlayer.com/downloads/test100.zip

wget -O /dev/null http://ipv4.download.thinkbroadband.com/1GB.zip
wget -O /dev/null http://ipv4.download.thinkbroadband.com:81/1GB.zip
wget -O /dev/null http://ipv4.download.thinkbroadband.com:8080/1GB.zip

iperf

This measures the bandwidth between two locations where one is set as a server and another as a client. Note there is iperf and iperf3 that are not compatible.

Start up server listening on port 8888. By default it is TCP port 5001 and TCP window size 64.0KB

/opt/systems/bin/iperf -s -p 8888


Connect client to server on port 8888

/opt/systems/bin/iperf -c your.server.com -l 1300 -p 8888 -P 10

-P splits the test into a number of streams. So, to just measure throughput use -P 1, then increase number of streams to get more realistic data.


Switches:

# -t option used in the above command tells to transfer data for X seconds
# -P --parallel n parallel client streams, iperf3 is single threaded, so if you are CPU bound, this will not yield higher throughput.
# -p --port server port to listen on/connect to
# -w desired window size value
# -l, --len length of buffer to read or write (default 8 KB)
# -u --udp use UDP rather than TCP
# -M, --mss set TCP maximum segment size (MTU - 40 bytes)
# -f m displays results in megabytes
# -s, --server run in server mode, -D run as a daemon in the background
# -c --client connect to server from client
# -r bidirectional test individually, use -d --dualtest to test simultaneously

References