Knowledge Base

The VMware Knowledge Base provides support solutions, error messages and troubleshooting guides
 
Search the VMware Knowledge Base (KB)   View by Article ID
 

The output of esxtop shows dropped receive packets at the virtual switch (1010071)

Details

The network screen output in esxtop shows dropped receive packets (%DRPRX) at the virtual switch port.

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.

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

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.

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
  1. If the driver is already loaded, unload it by entering the following command:

    # rem_drv vmxnet3s

  2. To change the size of Rx rings, edit the vmxnet3.conf file available in the /kernel/drv/amd64 and /kernel/drv/ directories.
  3. Reload the driver by entering the following commands:

    # add_drv -i "pciex15ad,7b0" vmxnet3s

    # ifconfig vmxnet3sx plumb

Update History

07/30/2012 - Added ESXi versions to Product Versions. 01/11/2013 - Added ESXi 5.1 to Product Versions.

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.

Feedback

  • 35 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.
What can we do to improve this information? (4000 or fewer characters)
  • 35 Ratings
Actions
KB: