Close Menu
DPC Virtual Tips
    Read More

    Linux Memory Below 10%: How to Troubleshoot High Memory Usage

    September 15, 2026

    How to Resize ext4 and XFS Filesystems on RHEL 8

    September 14, 2026

    How to Install VMware PowerCLI Offline (VCF PowerCLI)

    September 14, 2026
    • Home
    • About Us
    • Contact
    • Cookie Policy
    • Comment Policy
    • Privacy Policy
    • Terms of Use
    DPC Virtual Tips
    • Home
    • Linux & Automation
    • HPC & Slurm
    • VMware & Virtualization
    • About Us
    • Contact
    DPC Virtual Tips
    Home » How to Use iPerf3 on ESXi to Test Network Throughput
    VMware & Virtualization

    How to Use iPerf3 on ESXi to Test Network Throughput

    By Danilo ChiacchioJuly 13, 20268 Mins Read
    Facebook Twitter Pinterest LinkedIn Tumblr Email
    How to Use iPerf3 on ESXi to Test Network Throughput
    How to Use iPerf3 on ESXi to Test Network Throughput
    Share
    Facebook Twitter LinkedIn Pinterest Email

    Using iPerf3 on an ESXi host is a practical way to measure network throughput between virtualization endpoints and verify whether a specific network path is delivering the performance expected from the infrastructure.

    In this lab, I will use the iPerf3 utility available on ESXi to test traffic between two ESXi hosts and between an ESXi host and a virtual machine. This can be useful when troubleshooting low throughput on networks used by services such as vSAN, vMotion, management, or other VMkernel-based traffic.

    The most important part of an iPerf test is making sure that the traffic uses the network path you actually want to validate. On ESXi hosts with multiple VMkernel adapters, simply connecting to an IP address without binding the test to the correct source and destination interfaces can produce a result from a completely different network.

    In this guide, I will show how to locate and run iPerf3 on ESXi, bind the test to specific VMkernel IP addresses, deal with the ESXi 8 appDom restriction when necessary, and interpret the throughput results without treating a single test as proof of the entire network capacity.

    Basically, what is iperf/iperf3?

    Based on the website https://iperf.fr/, iPerf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning various parameters related to timing, buffers, and protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each network test, it reports the bandwidth, loss, and other parameters.

    The tool iperf or iperf3 can be used in a lot of operational systems. In this case, the Vmware ESXi has support for the iperf by default. In other words, we do not need to download and install iperf on the ESXi host.

    Performance impact: iPerf3 is designed to generate network traffic and can consume a significant portion of the available bandwidth. Running aggressive or parallel tests on a production network can affect virtual machines, storage, replication, vMotion, or other workloads sharing the same physical path.
    
    Run throughput tests during an appropriate maintenance or troubleshooting window and understand which services share the tested uplinks.

    Locate iPerf3 on the ESXi Host

    The ESXi installation includes the iPerf utility used by VMware for network testing under:

    cd /usr/lib/vmware/vsan/bin

    Check which binaries are available:

    ls -l iperf*

    Depending on the ESXi version, the executable may be named iperf3 or iperf. Broadcom documents that ESXi versions prior to 7.0 Update 3 could require creating a copy of the binary before executing it directly.

    For older releases where that workaround is required:

    cp /usr/lib/vmware/vsan/bin/iperf3 \
       /usr/lib/vmware/vsan/bin/iperf3.copy

    For current ESXi releases, use the installed executable directly unless the applicable Broadcom procedure says otherwise.

    In this example, our goal is to measure the achievable bandwidth between two ESXi hosts (HOST-01 and HOST-02). In this case, “HOST-01” will be as a Server, and “HOST-02” will be as a Client.

    Commands from HOST-01 (Iperf Server):

    cp /usr/lib/vmware/vsan/bin/iperf3 /usr/lib/vmware/vsan/bin/iperf3.copy
    /usr/lib/vmware/vsan/bin/iperf3.copy -s
    ESXi host running iperf3 in server mode on TCP port 5201
    ESXi host running iperf3 in server mode on TCP port 5201

    Commands from HOST-02 (Iperf Client):

    /usr/lib/vmware/vsan/bin/iperf3 -n 1G -c 192.168.200.11

    Where:

    • -n 1G = amount of data that is sending to the iperf server
    • -c = using iperf as a client
    • 192.168.200.11 = IP address of the iperf server
    ESXi iperf3 client timing out while connecting to the remote ESXi server
    ESXi iperf3 client timing out while connecting to the remote ESXi server

    Note: In this example, we received a timeout message. This connection timeout can be due to the hosts’ firewalls being active. We can temporarily disable the host’s firewall on both ESXi hosts with the below command.

    Important: The Broadcom troubleshooting procedure may require temporarily disabling the ESXi firewall so that the iPerf3 listener on TCP 5201 can accept connections. Disabling the ESXi firewall affects the host globally and should only be done during a controlled troubleshooting window:

    esxcli network firewall set --enabled false

    After that, we can run iperf again on both ESXi hosts:

    Successful iperf3 throughput test between two ESXi hosts
    Successful iperf3 throughput test between two ESXi hosts

    So, in this example:

    • We transferred 1 GB of data from HOST-02 to HOST-01.
    • In this test, the single TCP stream achieved approximately 941 Mbit/s between the two endpoints.

    After the test, if you want to enable the firewall again:

    esxcli network firewall set --enabled true

    Note: If you need to get the IP address of a specific vmkernel of the ESXi host, you can execute the below command to achieve it:

    esxcli network IP interface ipv4 get
    ESXi VMkernel IPv4 addresses displayed with esxcli
    ESXi VMkernel IPv4 addresses displayed with esxcli

    If you are running ESXi 8.x

    On VMware ESXi 8.0.0 build-20513097, if we need to use the tool Iperf3 to perform some network tests, we can receive the below error:

    [root@esxi8-01:/usr/lib/vmware/vsan/bin] /usr/lib/vmware/vsan/bin/iperf3 -s
    iperf3: error - unable to start listener for connections: Operation not permitted
    iperf3: exiting

    On the same ESXi host, the vmkernel.log logged an entry about this event:

    2023-04-25T15:08:36.061Z In(182) vmkernel: cpu2:6469331)VmkAccess: 194: iperf3: running in appDom(27): ipAddr = ::, port = 5201: Access denied by vmkernel access control policy

    This behavior is probably related to the enforcement level configured on Security Domains on the ESXi host. The below VMware KB explains a little about that:

    • https://kb.vmware.com/s/article/87510

    WE ONLY RECOMMEND DOING THAT DURING THE IPERF TEST. AFTER THAT, RETURN THE CONFIGURATION TO DEFAULT, AS WE WILL SHOW:

    1- Access the ESXi host by SSH, and check the enforcement level of all Domains:
    localcli system secpolicy domain list

    2- Based on the vmkernel.log, the domain that handles the iperf3 execution is called “appDom”. So, we can check the enforcement level for this Domain with the below command:

    [root@esxi8-01:/usr/lib/vmware/vsan/bin] localcli system secpolicy domain list | grep appDom
    appDom                   enforcing

    In this case, the enforcement level is “enforcing”.

    3- Change the appDom enforcement level temporarily from enforcing to disabled:

    localcli system secpolicy domain set -n appDom -l disabled

    Warning: Do not leave appDom disabled after the test. The change should exist only for the duration of the controlled troubleshooting activity.

    4- After that, we can run the iperf3 as a server normally:

    [root@esxi8-01:/usr/lib/vmware/vsan/bin] ./iperf3 -s -B 10.237.180.156
    -----------------------------------------------------------
    Server listening on 5201 (test #1)
    -----------------------------------------------------------

    5- After executed the iperf tests, back the “appDom” enforcement level to the default value (enforcing):

    localcli system secpolicy domain set -n appDom -l enforcing

    Test Between ESXi and a Virtual Machine

    As we mentioned before, we can test the network between an ESXi host and a specific VM. In this example, we will download and run iperf on a Windows Server VM.

    To download the iperf package for Windows, click here.

    After that, we can start the iperf as a Client on a Windows Server VM:

    cd C:\Users\Administrator\Desktop\iperf-3.1.3-win64\iperf-3.1.3-win64
    iperf3.exe -n 500M -c 192.168.200.11
    Windows Server virtual machine running an iperf3 throughput test against an ESXi host
    Windows Server virtual machine running an iperf3 throughput test against an ESXi host

    So, in this example:

    • We transferred 500 MB of data from the Windows Server VM to HOST-01.
    • The achievable bandwidth was 193 Mbits/sec.

    What a Low iPerf3 Result Does – and Does Not – Prove

    A low iPerf3 result confirms that the tested TCP flow is not achieving the expected throughput, but it does not identify the root cause by itself.

    Possible causes include:

    • physical NIC or switch-port limitations;
    • incorrect source VMkernel selection;
    • link negotiation problems;
    • congestion;
    • routing;
    • packet loss or TCP retransmissions;
    • MTU inconsistencies;
    • QoS or firewall inspection;
    • CPU limitations at either endpoint;
    • a single TCP stream being unable to use the full path capacity.

    Compare results in both directions and, when appropriate, compare single-stream and multi-stream tests before concluding that the physical network is the bottleneck.

    If the throughput test is lower than expected and you need to determine whether packets are being dropped inside the ESXi network stack, see “How to Troubleshoot Packet Drops on an ESXi Host“.

    Using iPerf3 as Part of an ESXi Network Investigation

    iPerf3 is most useful when the test is designed around the network path you actually want to measure.

    On an ESXi host with multiple VMkernel adapters, binding both endpoints to the intended IP addresses is essential. Without that control, a successful throughput test may be measuring the Management Network while the actual problem exists on vSAN, replication, or another VMkernel network.

    A single throughput number should also not be treated as a complete network diagnosis. Compare both traffic directions, repeat the test, and use parallel streams only when they represent the workload being investigated.

    After testing, restore any temporary ESXi firewall or appDom changes immediately and continue with packet-drop, MTU, switching, or physical-network troubleshooting if the measured throughput remains below expectations.

    External References

    • Using iPerf for Testing vSAN Network Performance Official Broadcom procedure for locating and running iperf3 on ESXi, binding the server to a VMkernel IP address, handling ESXi firewall requirements, and temporarily changing the ESXi 8 appDom security policy when necessary.
    • Network Performance Test Reporting Health Status as Failed Broadcom vSAN troubleshooting example using manual iperf3 testing between ESXi VMkernel interfaces when the proactive network performance test reports a failure.
    • Using iPerf to Test Network Bandwidth from an ESXi Host Broadcom guidance covering VMkernel network selection, source binding, TCP port 5201, parallel iPerf streams, test duration, and the potential performance impact of throughput testing on production networks.
    • iPerf3 Command-Line Documentation Official ESnet reference for iPerf3 client and server operation, address binding with -B, reverse tests with -R, parallel streams with -P, duration, bitrate, and other throughput-test parameters.
    • iPerf3 FAQ Official ESnet guidance covering iPerf3 platform support, single-stream and parallel-stream performance considerations, CPU limitations, and troubleshooting behavior.
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    Previous ArticleDocker Containers Not Starting on Boot? Fix Restart Policies
    Next Article vim-cmd Commands for VMware ESXi: Practical Guide
    Danilo Chiacchio
    • LinkedIn

    Infrastructure Engineer with hands-on experience in virtualization, Linux, Windows Server, and enterprise infrastructure troubleshooting. I work with real-world infrastructure environments and technical labs, focusing on diagnosing problems, understanding root causes, and documenting practical solutions. DPC Virtual Tips was created to share hands-on troubleshooting guides, lab experiences, technical procedures, and lessons learned while working with technologies such as VMware, Linux, HPC/Slurm, networking, storage, and infrastructure automation with Python.

    Related Posts

    How to Install VMware PowerCLI Offline (VCF PowerCLI)

    September 14, 2026

    Configure vCenter File-Based Backups to NFS: Practical Lab Guide

    September 11, 2026

    Restoring vCenter Server from a File-Based Backup: Practical Lab Walkthrough

    September 7, 2026

    Comments are closed.

    Search
    Categories
    • HPC & Slurm (11)
    • Linux & Automation (14)
    • VMware & Virtualization (17)
    Read More
    Linux & Automation

    Linux Memory Below 10%: How to Troubleshoot High Memory Usage

    By Danilo ChiacchioSeptember 15, 20268 Mins Read
    Linux & Automation

    How to Resize ext4 and XFS Filesystems on RHEL 8

    By Danilo ChiacchioSeptember 14, 202614 Mins Read
    VMware & Virtualization

    How to Install VMware PowerCLI Offline (VCF PowerCLI)

    By Danilo ChiacchioSeptember 14, 202610 Mins Read
    VMware & Virtualization

    Configure vCenter File-Based Backups to NFS: Practical Lab Guide

    By Danilo ChiacchioSeptember 11, 202610 Mins Read
    Linux & Automation

    Creating Your First Ansible Playbook: A Practical Lab Guide

    By Danilo ChiacchioSeptember 10, 202610 Mins Read
    Latest Posts

    Linux Memory Below 10%: How to Troubleshoot High Memory Usage

    September 15, 2026

    How to Resize ext4 and XFS Filesystems on RHEL 8

    September 14, 2026

    How to Install VMware PowerCLI Offline (VCF PowerCLI)

    September 14, 2026
    Images from Gallery
    hpc main commands
    linux commands
    install rock linux
    lustre fs
    shell scripting
    vSAN Trace Files
    Categories
    • HPC & Slurm
    • Linux & Automation
    • VMware & Virtualization
    • Home
    • About Us
    • Contact
    • Cookie Policy
    • Comment Policy
    • Privacy Policy
    • Terms of Use
    Copyright © 2026, DPC Virtual Tips. All rights reserved.

    Type above and press Enter to search. Press Esc to cancel.

    We use cookies to improve your browsing experience, analyze website traffic, and display relevant advertising. You can accept all cookies or manage your preferences at any time.