Using iperf3 is a gift. I use it on a daily basis and I believe it’ll help expedite your network troubleshooting skills. It is the industry standard tool for checking the interface and uplink and port speeds that IaaS providers (aka Cloud companies like IBM Softlayer, Rackspace, AWS) advertise. It is used commonly to test customer claims that they are not getting the Network Interface Card (nic) speeds on their servers that they are paying for. This can happen to a bad NIC, high network utilization at the datacenter, or wrong advertising. There is one way to check and that is to use iPerf3. Here are the information that I believe are essential. First download iperf3 and then launch cmd (command prompt) in Windows and use cd command to browse to the folder of iperf3 and then run the following commands. It will utilize the iperf3.exe file and run the flags from within command prompt and get you results. You have to have iperf3 running on both client side (sending the packets) and server side (receiving side) for it to work.
1. For Windows Users
Download from https://iperf.fr/iperf-download.php
Choose 64-bit or 32-bit depending on your OS.
When you download it, it’ll be a zipped file, be sure to extract it to a common location that can be easily accessed like C:\Users\yourusername\Documents\iperf-3.1.3-win64
Now launch command prompt (Start -> All Apps -> Windows Systems -> Command Prompt)
From there usually you’ll start out in
From there you can type in
And begin to use the follow iperf3 commands below
2. For Linux users
I’m going to use centOS 7 as example.
First grab the file (get the lates from https://iperf.fr/iperf-download.php)
And then install:
rpm -i iperf3-3.1.3-1.fc24.x86_64.rpm
That’s it! After this head down to the iperf3 commands section to run it
If you ever feel the need to remove it just run the following:
rpm -e iperf3
3. iPerf3 Commands
For the client side to send the transmissions (on linux just remove the .exe from the line e.g. iperf3 -i 2 etc.)
iperf3.exe -i 2 -t 20 -p 8000 -B 10.0.56.32 -c 18.104.22.168 -w 1024k -P 7 -4
For the server side listening the transmissions (on linux just remove the .exe from the line e.g. iperf3 -s etc.)
iperf3.exe -s -i 2 -p 8000 -4 -B 10.0.56.32
Explanation of flags
The -i flag will show data every 2 seconds instead of the default 10 seconds
The -t flag is the number of seconds for the transmission
The -p flag will specify the port for the iperf3
The -B flag will specify the interface whether private or public, you can specify the IP of that interface. e.g. -B public.IP or -B private.ip
The -4 will specify IPv4
The -s or -c will make either one server the server listening or the client sending the transmission.
The -w is the TCP window which will be adjusted from the default value to 1MB (1024k) (the max). TCP hosts limit the amount of unacknowledged data (data buffer) that waits to be processed between two hosts, this data size or TCP window, allows hosts to quickly efficiently utilize network traffic.
The -P will specify Parallel streams [aka simultaneous multiple connections]to test the limits of your network, please don’t confuse this with the lowercase p which is for port.
Get the iperf3 for your OS here:
Some more info of its usage can be found here:
TCP Window Explanation:
Any comments, thoughts? Share~!