Have you recently upgraded your network with a faster switch? Want to see if your onboard GigE NIC is performing up to spec? Network testing and bottleneck snuffing is a time consuming process that usually involves the use of many diagnostic tools and sometimes small animal sacrifices. If you’ve spent the money to upgrade your network, you want to ensure you are getting the performance you’d expect. The tools are plentiful but I have a personal favorite that does the job well.

Iperf is such a tool, in that it is useful in pushing your network configuration to the max. As is often the case, the server/client architecture is used – so need access to  both ends of the connection. Iperf is available for Windows, Linux, and OS X, for free of course. Being just a single binary, installation and execution are straightforward. In production, I have Iperf installed on nodes throughout our WAN, configured to run as a system daemon. With a few clicks it’s simple to determine where the network may be screeching to a halt.

  1. Here is an example configuration with server and client endpoints – both Windows. It doesn’t matter about the underlying OS because the command line parameters are the same. I’ve started the server with the command iperf -s -u -p 5001; -s for server, -u to use the UDP protocol (more accurately assesses throughput), -p for the server port.
  2. iperf_server

  3. On the client end, Iperf is execute with iperf -c luke -u -n 50MB -p 5001; -c for client mode connecting to server luke – from step 1, -n for the number of bytes transmitted for the test. The network actually hiccuped while I ran the above test, as you can see in the result.

  4. iperf_client

Iperf offers a number of other flags and test parameters that can be uncovered by running iperf -h.