book
Article ID: 303408
calendar_today
Updated On:
Issue/Introduction
Symptoms:
When a Linux guest is configured to route IPv4 packets using the
net.ipv4.ip_forwarding sysc
tl kernel value, you experience these symptoms:
- Performance is poor when using a VMXNET3 adapter, which is less than 100Mbps.
- For short periods, the guest stops forwarding packets and resume intermittently.
- Performance is poor when routing to virtual machines on the same ESX/ESXi host compared to virtual machines on other hosts, or physical nodes on the network.
- When switching to the E1000 virtual network adapter, performance is better.
Environment
VMware vSphere ESXi 6.0
VMware ESX 4.1.x
VMware ESX 4.0.x
VMware ESXi 4.1.x Embedded
VMware ESXi 4.1.x Installable
VMware vSphere ESXi 5.5
VMware vSphere ESXi 5.0
VMware ESXi 4.0.x Installable
VMware vSphere ESXi 5.1
VMware ESXi 4.0.x Embedded
Cause
The VMXNET3 adapter supports an offloading feature called Large Receive Offloading (LRO), and in some Linux distributions, the VMXNET3 driver may have LRO enabled by default. The Linux kernel cannot handle LRO packets when performing packet forwarding and this offloading feature must not be used. This issue does not impact E1000 virtual adapters, because the E1000 driver does not support LRO.
Note: In ESX/ESXi releases prior to 4.1 Update 2, this issue were observed even when IP forwarding is disabled. All versions of ESXi, including ESXi 5.x require LRO disabled when IP forwarding is enabled.
Additional Information
To determine if routing has been enabled using the sysctl value, run this command within the Linux guest:
# sysctl net.ipv4.ip_forward
If it is enabled, a value of 1 is returned. If it is disabled, a value of 0 is returned. For example:
net.ipv4.ip_forward = 0
Poor TCP performance might occur in Linux virtual machines with LRO enabledCannot disable LRO on VMXNET3 adapters in Red Hat Enterprise Linux 5.xLinux ゲスト OS でルーティングに VMXNET3 アダプタを使用するとネットワーク パフォーマンスが低下する在 Linux 客户机操作系统中使用 VMXNET3 适配器进行路由时网络性能差