Internet speed test using Terminal
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.
Server listening (AWS) | Client connecting (Azure) |
---|---|
ec2-user@linux2 10.111.1.11$ iperf3 -s -p 8888 ----------------------------------------------------------- Server listening on 8888 ----------------------------------------------------------- Accepted connection from 10.222.2.22, port 34510 [ 8] local 10.111.1.11 port 8888 connected to 10.222.2.22 port 34512 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 8] 0.00-1.00 sec 73.2 MBytes 614 Mbits/sec 279 561 KBytes [ 8] 1.00-2.00 sec 69.9 MBytes 587 Mbits/sec 14 450 KBytes [ 8] 2.00-3.00 sec 56.5 MBytes 474 Mbits/sec 6 402 KBytes [ 8] 3.00-4.00 sec 65.4 MBytes 548 Mbits/sec 0 507 KBytes [ 8] 4.00-5.00 sec 70.3 MBytes 589 Mbits/sec 0 596 KBytes [ 8] 5.00-6.00 sec 69.9 MBytes 587 Mbits/sec 18 502 KBytes [ 8] 6.00-7.00 sec 73.7 MBytes 619 Mbits/sec 0 596 KBytes [ 8] 7.00-8.00 sec 63.1 MBytes 529 Mbits/sec 6 509 KBytes [ 8] 8.00-9.00 sec 73.4 MBytes 616 Mbits/sec 6 423 KBytes [ 8] 9.00-10.00 sec 54.4 MBytes 456 Mbits/sec 4 398 KBytes [ 8] 10.00-10.04 sec 2.69 MBytes 536 Mbits/sec 0 402 KBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 8] 0.00-10.04 sec 672 MBytes 562 Mbits/sec 333 sender [ 8] 0.00-10.04 sec 0.00 Bytes 0.00 bits/sec receiver |
ubuntu@bastion-1:~$ iperf3 -c 10.111.1.11 -l 1300 -p 8888 -P 1 -R Connecting to host 10.111.1.11, port 8888 Reverse mode, remote host 10.111.1.11 is sending [ 4] local 10.222.2.22 port 34512 connected to 10.111.1.11 port 8888 [ ID] Interval Transfer Bandwidth [ 4] 0.00-1.00 sec 74.1 MBytes 622 Mbits/sec [ 4] 1.00-2.00 sec 69.4 MBytes 582 Mbits/sec [ 4] 2.00-3.00 sec 55.6 MBytes 467 Mbits/sec [ 4] 3.00-4.00 sec 66.4 MBytes 557 Mbits/sec [ 4] 4.00-5.00 sec 70.9 MBytes 595 Mbits/sec [ 4] 5.00-6.00 sec 69.3 MBytes 581 Mbits/sec [ 4] 6.00-7.00 sec 74.2 MBytes 623 Mbits/sec [ 4] 7.00-8.00 sec 62.7 MBytes 526 Mbits/sec [ 4] 8.00-9.00 sec 73.0 MBytes 613 Mbits/sec [ 4] 9.00-10.00 sec 54.1 MBytes 454 Mbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.00 sec 672 MBytes 564 Mbits/sec 333 sender [ 4] 0.00-10.00 sec 670 MBytes 562 Mbits/sec receiver |
Switches:
# -s --server run in server mode, -D run as a daemon in the background # -c --client connect to server from client # -t time option tells to transfer data for X seconds # -p --port server port to listen on/connect to # -P --parallel n parallel client streams, iperf3 is single threaded, so if you are CPU bound, this will not yield higher throughput. # -l --len length of buffer to read or write (default 8 KB) # -w desired window size value # -u --udp use UDP rather than TCP # -M --mss set TCP maximum segment size (MTU - 40 bytes) # -f m displays results in megabytes # -r bidirectional test individually, use -d --dualtest to test simultaneously