Could you please try iperf with multiple thread as given below which enforces to use Mutiple thread at the same time.
Also, could you share the Azure VM type and size and on-prem VM/host size ?
On the Azure VM, open an elevated command prompt, navigate to the path of iperf.exe and execute the following: iperf3 -s. This starts the IPerf server and you should see “Server listening on TCP port 5201”
- Note* By default, Iperf listens on port 5201, so you will need to make sure that connections are permitted to port 5201 over the Windows Firewall.
- From the on-premises client open an elevated command prompt and execute the following: iperf3 -c <IP ADDRESS OF AZURE VM> -t 300 -f m --logfile %computername%-iperf.log -i 30
- Note* Yes - there are two dashes in front of the logfile parameter
- Once the previous test has concluded, from the on-premises client, execute the following command: iperf3 -c <IP ADDRESS OF AZURE VM> -t 300 -f m --logfile %computername%-iperf32.log -i 30 -P 32
- Now we want to reverse the test. Stop the IPerf server on the Azure VM with CTRL+C. Open an elevated command prompt on the on-premises machine and execute the following: iperf3 -s
- **Note: You can actually do the reverse test without switching client and server by running the client side tests with the -R (must be uppercase) switch. This will do a "Reverse" test server sends, client receives.
- From the Azure VM open an elevated command prompt and execute the following: iperf3 -c <IP ADDRESS OF ON-PREMISES MACHINE> -t 300 -f m --logfile %computername%-iperf.log -i 30
- Once the previous test has concluded, from the Azure VM, execute the following command: iperf3 -c <IP ADDRESS OF ON-PREMISES MACHINE> -t 300 -f m --logfile %computername%-iperf32.log -i 30 -P 32