Testing network speed with Iperf
Category : How-to
Iperf is an Open source network bandwidth testing application, available on Linux, Windows and Unix. Iperf can be used in two modes, client and server. The server runs on the remote host and listens for connections from the client. The client is where you issue the bandwidth test parameters, and connect to a remote server.
You can install Iperf using apt-get on ubuntu.
apt-get install iperf
Once installed, on the remote host run Iperf in client mode. If you wish to run the server in daemon mode, add -D to the command.
iperf -s
Iperf has many configurable options for testing network throughput. For our test, we will use TCP connections to a remote server at IP 10.1.1.50. The test will use 4 threads, each sending data and the test will be performed in both directions.
iperf -c 10.1.1.50 -r -P 4
The result will look similar to the below output. This example shows a total throughput of 9.42 Gbits/ second in one direction and 11.9 Gbits/ second in the other direction. As the results can fluctuate depending on the load of the server, or how congested the network is between the servers, it’s best to run each test 3 – 4 times at different times of the day and take an average.
------------------------------------------------------------ Server listening on TCP port 5001 TCP window size: 85.3 KByte (default) ------------------------------------------------------------ ------------------------------------------------------------ Client connecting to 192.168.50.112, TCP port 5001 TCP window size: 22.9 KByte (default) ------------------------------------------------------------ [ 8] local 10.1.1.51 port 39372 connected with 10.1.1.50 port 5001 [ 6] local 10.1.1.51 port 39370 connected with 10.1.1.50 port 5001 [ 3] local 10.1.1.51 port 39369 connected with 10.1.1.50 port 5001 [ 7] local 10.1.1.51 port 39371 connected with 10.1.1.50 port 5001 [ ID] Interval Transfer Bandwidth [ 8] 0.0-10.0 sec 2.77 GBytes 2.38 Gbits/sec [ 3] 0.0-10.0 sec 2.92 GBytes 2.51 Gbits/sec [ 6] 0.0-10.0 sec 3.30 GBytes 2.83 Gbits/sec [ 7] 0.0-10.0 sec 1.99 GBytes 1.71 Gbits/sec [SUM] 0.0-10.0 sec 11.0 GBytes 9.42 Gbits/sec [ 5] local 10.1.1.50 port 5001 connected with 10.1.1.51 port 49434 [ 3] local 10.1.1.50 port 5001 connected with 10.1.1.51 port 49435 [ 9] local 10.1.1.50 port 5001 connected with 10.1.1.51 port 49437 [ 8] local 10.1.1.50 port 5001 connected with 10.1.1.51 port 49436 [ 5] 0.0-10.0 sec 3.32 GBytes 2.85 Gbits/sec [ 9] 0.0-10.0 sec 4.18 GBytes 3.58 Gbits/sec [ 8] 0.0-10.0 sec 3.28 GBytes 2.81 Gbits/sec [ 3] 0.0-10.0 sec 3.11 GBytes 2.66 Gbits/sec [SUM] 0.0-10.0 sec 13.9 GBytes 11.9 Gbits/sec
For more test parameters see our Iperf cheat sheet.