Skip to main content

High-Speed Networking for VMs: VMXNET3 Now Supports Up to 65 Gbps

The VMXNET3 adapter is VMware's high-performance virtual network adapter, designed for optimized performance in vSphere environments. It is the default and recommended adapter for most modern workloads on ESXi, delivering high throughput, low latency, and support for advanced networking features.

With the release of vSphere ESXi 8.0 Update 2, VMXNET3 introduces new capabilities that significantly enhance virtual network performance.


What’s New in ESXi 8.0 Update 2 for VMXNET3?

Traditionally, VMXNET3 reports a default link speed of 10 Gbps to the guest operating system. However, the actual achievable throughput often exceeds this value—thanks to technologies such as multi-queue support, Receive Side Scaling (RSS), and Large Packet Offload.

Starting with ESXi 8.0 Update 2, this limitation can now be overridden, and VMXNET3 can be configured to support custom link speeds of up to 65 Gbps. This enhancement enables improved flexibility and throughput for high-performance workloads.


NSX Integration and Edge Node Optimization

In NSX environments, this update provides a strategic benefit: it allows Bare Metal Edge-level performance using VM-based Edge Nodes, eliminating the need for dedicated hardware in certain use cases. With vSphere 8.0.2 and above, virtual NICs configured with VMXNET3 can operate between 10 Gbps and 65 Gbps, offering a significant boost in data plane performance.


How to Configure VMXNET3 for 65 Gbps

You can configure the custom link speed using either the vSphere Client UI or by directly editing the VM configuration (.vmx) file.

Option 1: Configuration via vSphere Client

  1. Navigate to the virtual machine in the vSphere Client.

  2. Shut down the VM.

  3. Right-click the VM and select Edit Settings.

  4. Go to the VM Options tab.

  5. Expand Advanced > Configuration Parameters, and click Edit Configuration.

  6. Click Add Row and input the following:

    • Name: ethernetX.linkspeed (Replace X with the NIC number, e.g., ethernet0)

    • Value: Desired link speed in Mbps (between 10000 and 65000)

      • Example: ethernet0.linkspeed = 65000

  7. Click OK to save the changes.


Option 2: Configuration via CLI (.vmx File Edit)

  1. Shut down the VM.

  2. SSH into the ESXi host where the VM resides.

  3. Navigate to the VM's folder:

    bash

    cd /vmfs/volumes/<DATASTORE>/<VM_NAME>
  4. Open the .vmx file in a text editor (e.g., vi):

    bash

    vi <VM_NAME>.vmx
  5. Add the following line:

    bash

    ethernetX.linkspeed = "65000"

    Replace X with the appropriate NIC number.

  6. Save and close the file.

  7. Power on the VM to apply the changes.



Important Notes

  • The linkspeed parameter is cosmetic—it changes what the guest OS perceives as the NIC speed but does not inherently guarantee line-rate throughput unless the VM and host are optimized.

  • Ensure that VMware Tools are installed and up to date for optimal driver compatibility.

  • Verify that the guest OS supports higher speeds and can take advantage of multi-queue NICs and large packet optimizations.

This configuration is particularly impactful for high-performance network functions virtualization (NFV), data-intensive workloads, and virtualized edge appliances in modern vSphere and NSX environments.


Infographic Summary – VMXNET3 Speed Enhancement (ESXi 8.0 U2)




PowerCLI Script:  

Set VMXNET3 Link Speed to 65 Gbps

# PowerCLI Script to Set VMXNET3 Link Speed to 65000 Mbps

$vmName = "YourVMName"
$nicNumber = 0  # Use 0 for ethernet0, 1 for ethernet1, etc.
$desiredSpeed = 65000

# Get the VM object
$vm = Get-VM -Name $vmName

# Power off the VM
Stop-VM -VM $vm -Confirm:$false

# Construct the parameter key
$paramKey = "ethernet$nicNumber.linkspeed"

# Update configuration parameter
$vm | New-AdvancedSetting -Name $paramKey -Value $desiredSpeed -Force

# Power on the VM
Start-VM -VM $vm

Write-Host "Link speed for ethernet$nicNumber set to $desiredSpeed Mbps on $vmName"

Comments

Popular posts from this blog

Changing the FQDN of the vCenter appliance (VCSA)

This article states how to change the system name or the FQDN of the vCenter appliance 6.x You may not find any way to change the FQDN from the vCenter GUI either from VAMI page of from webclient as the option to change the hostname always be greyed out. Now the option left is from the command line of VCSA appliance. Below steps will make it possible to change the FQDN of the VCSA from the command line. Access the VCSA from console or from Putty session. Login with root permission Use above command in the command prompt of VCSA : /opt/vmware/share/vami/vami_config_net Opt for option 3 (Hostname) Change the hostname to new name Reboot the VCSA appliance.   After reboot you will be successfully manage to change the FQDN of the VCSA . Note: Above step is unsupported by VMware and may impact your SSL certificate and face problem while logging to vSphere Web Client. If you are using self-signed certificate, you can regenerate the certificate with...

Issue : Configure Management Network option is Grayed out into ESXi

Last week I got into an issue of one of my client into Vsphere environment where one of its ESXi went done out of the network. Issue was IP address was showing 0.0.0.0 on main Esxi screen and when I tried to change the network configuration, its " Configure Management network option was greyed out.  I tried to gid into it and try to analyis its vmKernal and vmwarning logs. What I found is its VMkernal switch got removed due to unexpected reason. So to resolve the issue I tried to reconfigure its vswitch0 (vmk0) by going into Tech Mode of that Exi. Below are the steps which I followed to resolve the issue. 1) Login to ESXi 2) Press F2, Check if you " Configure Management network " is greyed out or not" if yes,    follow below 3) Press ALT+F1 to move the ESXi screen to tech mode   ( This is command line like dos) 4) login with root account 5) Run the following command into it esxcli network ip interface add --interface-name= vmk0 ...

Collecting Logs from NSX-T Edge nodes using CLI

  This article explains how to extract the logs from NSX-T Edge nodes from CLI. Let's view the steps involved: 1) Login to NSX-T  Edge node using CLI from admin credentials. 2) Use of  " get support-bundle " for Log extraction. get support-bundle command will extract the complete logs from NSX-T manager/Edge nodes. nsx-manager-1> get support-bundle file support-bundle.tgz 3) Last step is to us e of " copy file support-bundle.tgz url " command. copy file will forward your collected logs from the NSX-T manager to the destination(URL) host from where you can download the logs. copy file support.bundle.tgz url scp://root@192.168.11.15/tmp Here, the URL specified is the ESXi host ( 192.168.11.15) under /tmp partition where logs will be copied and from there one can extract it for further log review. Happy Learning.  :)