Network Throughput Testing with iperf

You can validate your network’s throughput and stability with a freely available utility called iperf.

You can download a compiled version of iperf version 3 for Windows for free at http://iperf.fr. Just download it into a folder of your choosing or place it somewhere in the system path so you can execute it from anywhere.

iperf is also available on most Linux distributions. A simple sudo apt-get install iperf command installs it on Debian-based distros. You can move the virtual machines to different physical servers, jump around on different VLANs, or because they are so small, move them to the DR locations to spot-check network performance.

Using the tool is very straightforward. You need two copies of the utility on two different servers. From a command prompt, start up the server node by typing the following command.

iperf –s

iperf1

You just started up the server. We will refer to this as the target server.

On the second server, we will kick of a simple test from this server to the target server. We will call this server the source server. Enter the following command in a command prompt on the source server.

iperf -c (ip address or name of target server) -t 10 –P 10

iperf2

This command just kicked off a ten second test with maximum throughput testing to the source server with ten worker threads.

Of course, you can get more sophisticated with your testing at this point, but I keep it simple for most cases unless something unusual pops up.

The results look something like this.

 

iperf3

8.86Gb per second is approximately the realistic limit of performance on a ten gigabit network. That’s fast!

Now, if these are virtual machines, you can sometimes trigger internal network routing on the physical machine so that it never actually leaves the host.

 

AutoTuneDisablediPerf

It’s a great performance optimization trick to pair VMs together that have high data transfer rate relationships. Both VMware vSphere and Microsoft Hyper-V have methods to pair VMs together on the same host. You can dramatically boost the performance of your large batch processing or data movements every day by doing this! (Just do not pair two nodes of an HA pair of application components, such as Availability Groups. You create a single point of failure by doing so.)

Also, watch your CPU consumption while you perform these tests. iperf is single-threaded, so the 12.0Gb/s metric above was actually limited because of the CPUs and not because of the speed of the network.

ProcessorUsage

We also had to disable Windows Server OS networking auto-tune to achieve values this high.

AutoTuneDisable

Please remember to test two-way communications by flipping the roles of the utilities. Occasionally, one-way communication problems can pop up.