Knowledge Base
The VMware Knowledge Base provides support solutions, error messages and troubleshooting guides

|
The output of esxtop shows dropped receive packets at the virtual switch (1010071)
Details
Warning: The changes described in this article may impact guest networking at the time of the change. You may need to reboot the guest to recover. It is recommended that you schedule downtime for the applications running within the guest to which you are making changes prior to performing the steps.
Solution
Esxtop might show receive packets dropped at the virtual switch if the virtual machine’s network driver runs out of receive (RX) buffer memory the packets will be treated in a FIFO (First in first out basis) which the network can be degraded. Even though esxtop shows the packets as dropped at the virtual switch, they are actually dropped between the virtual switch and the guest operating system driver.
The number of dropped packets can be reduced by increasing the Rx buffers for the virtual network driver. For more information, see vCenter Server 5.1 performance charts report dropped network packets (2052917).
Warning: The changes described in this article may impact guest networking at the time of the change. You may need to reboot the guest to recover. It is recommended that you schedule downtime for the applications running within the guest to which you are making changes prior to performing the steps.
E1000 Virtual Network Driver
For the E1000 virtual network driver, Rx buffers can be modified from the guest operating system in exactly the same way as on the physical machine. The default value is 256, and the maximum value is 4096. Determine an appropriate setting by experimenting with different buffer sizes.
To determine the appropriate setting:
- In Linux – Run the command:
ethtool -G ethX rx value - In Windows – Load the Intel pro driver from Intel website on to the guest operating system to be able to modify the E1000 buffer size.
For more information on a related issue, see High rate of dropped packets for guests using E1000 or E1000E virtual network adapter on the same ESXi 5.x host (2056468).
VMXNET2 / Enhanced VMXNET2 Virtual Network Driver on ESX/ESXi 3.x.x
The maximum Rx buffers supported are 128, whereas the default is 120. To increase the default value, add the following line in the virtual machine’s .vmx configuration file:Ethernet x.numRecvBuffers=128
Where x refers to your virtual NIC.
VMXNET2 / Enhanced VMXNET2 Virtual Network Driver on ESX/ESXi 4.x.x
The maximum Rx buffers is increased to 512, whereas the default is 150. To increase the default value, add the following line in the virtual machine’s .vmx configuration file.Ethernet x.numRecvBuffers=value
Where x refers to your virtual NIC and value refers to the new value for the Rx buffer size.
VMXNET3
For Linux guest operating systems
The default Rx ring size is 256 and the maximum is 4096. The default setting can be modified from within the guest operating system.
Example for a Linux guest operating system:
ethtool -G ethX rx value
ethtool -G ethX rx value
Where X refers to the Ethernet interface ID in the guest operating system, and value refers to the new value for the Rx ring size.
Additionally, a Linux virtual machine enabled with Large Receive Offload (LRO) functionality on a VMXNET3 device might experience packet drops on the receiver side when the Rx ring #2 runs out of memory. This occurs when the virtual machine is handling packets generated by LRO.
As of ESXi 5.1 Update 3, the Rx ring #2 can be configured through the rx-jumbo parameter in ethtool. The maximum ring size for this parameter is 2048.
ethtool -G ethX rx-jumbo value
Where X refers to the Ethernet interface ID in the guest operating system, and value refers to the new value for the Rx ring #2.
Note, however, that even though ESXi supports a maximum of 2048 for the Rx ring #2 size, the maximum value used will depend on the Linux guest operating system's kernel version and other variables.
For Windows guest operating systems
In ESXi/ESX 3.x.x, you cannot configure the ring size of the VMXNET3 network interface card in Windows guest operating systems. In ESXi/ESX 4.0 Update 2 and later, you can configure the following parameters from the Device Manager (a Control Panel dialog box) in Windows guest operating systems: Rx Ring #1 Size, Rx Ring #2 Size, Tx Ring Size, Small Rx Buffers, and Large Rx Buffers.
The default value of the size of the first Rx ring, Rx Ring #1 Size, is 512. You can modify the number of Rx buffers separately using the Small Rx Buffers parameter. The default value is 1024.
For some processes (for example, traffic that arrives in burst), you might need to increase the size of the ring, while for others (for example, applications that are slow in processing receive traffic) you might increase the number of the receive buffers.
When jumbo frames are enabled, you might use a second ring, Rx Ring #2 Size. The default value of RX Ring #2 Size is 32. The number of large buffers that are used in both RX Ring #1 and #2 Sizes when jumbo frames are enabled is controlled by Large Rx Buffers. The default value of Large Rx Buffers is 768.
For Solaris guest operating systems
- If the driver is already loaded, unload it by entering the following command:
# rem_drv vmxnet3s - To change the size of Rx rings, edit the vmxnet3.conf file available in the /kernel/drv/amd64 and /kernel/drv/ directories.
- Reload the driver by entering the following commands:
# add_drv -i "pciex15ad,7b0" vmxnet3s
# ifconfig vmxnet3sx plumb
Additional Information
For translated versions of this article, see:Update History
Request a Product Feature
To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.
Actions
KB:
- Updated:
- Categories:
- Languages:
- Product Family:
- Product(s):
- Product Version(s):

