I had the opportunity to participate within a freelance project where I had to prove that the bottleneck is not related to the built web application performance but the network itself. Then I found useful the iperf command line tool. Today, the blog post is about it.
iperf is one of the best-known tools for analyzing network performance related bottleneck issues.
The app is a command line tool which can be used in two modes – server and client. The great thing about the application is it is widely supported for different operating systems (Linux, MacOS and Windows). There exists a Java-based GUI called jperf which is suitable because all of iperf's functionality is present inside and in that way all people that do not want to utilize the command line switches can utilize its powers.
Based on the scenario described, I tested the throughput by running iperf between server mode (the application server itself) and the client machine. In order to simulate what happens it is also needful to know in advance what ports are utilized, what network devices might be included as well as what protocols are used for the web app.
List of the command line switches
After that running iperf from the client side using the commands below:
Based on the pink marked output the lowest noticed throughput within a one-second interval was 927 Mbps, with an average rate of 939 Mbps.
These numbers represent the maximum practical throughput for a 1 Gbps Ethernet connection and also show clearly that the problem is not on the network side.
With the above example, I tested the speed by using the TCP. Below the options to test via UDP. In order to accomplish this, I had to utilize the –b switch. The output shows a UDP test rate-limited to 10 Mbps. Within those statistics at the end include jitter and the packet loss.
Just a screenshot how the GUI application looks like: