Testing network speed with Iperf

Testing network speed with Iperf

Category : How-to

Get Social!

iperfIperf 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.


5 Comments

Mustafa

2-Apr-2014 at 1:23 pm

That’s some network you got there, or it is in virtual machine :)

    james.coyle

    2-Apr-2014 at 2:20 pm

    That would be telling ;)

John

14-May-2014 at 1:08 am

if in iperf udp test setting bandwidth is:
iperf -c -u -b 100m

what about in tcp test setting bandwidth?
iperf -c ??????

    james.coyle

    14-May-2014 at 8:03 am

    TCP is the default.

Len

24-Dec-2015 at 8:04 pm

Hi James, your iperf cheat sheet is very helpful and very clear. This page, “Testing Network Speed with Iperf” is good but has a critical flaw: “Once installed, on the remote host run Iperf in client mode.” Based on the cheat sheet, I now understand that that should say “server mode.”
Please keep in mind that not all of your readers are software or network experts. I am a systems engineer–and not for IP or computer systems. I’m using iperf to perform engineering tests on cellular network setups for signal and RF equipment. I come from the RF hardware side of the business and don’t understand certain words/concepts. For example, I had to lookup daemon and can only guess what multi-thread testing really means.

Leave a Reply

Visit our advertisers

Quick Poll

How many Proxmox servers do you work with?

Visit our advertisers