You may notice that there are some counters that are greater than zero, on one or more physical network adapters (vmnics) on one or more ESXi hosts, when you run a command like the following, at the command line, having logged in via SSH or a KVM server console with root privileges:
esxcli network nic stats get -n vmnic2
NIC statistics for vmnic2
Packets received: 701280499176
Packets sent: 687061948450
Bytes received: 664124780523852
Bytes sent: 676938646792793
Receive packets dropped: 2452783244
Transmit packets dropped: 0
Multicast packets received: 976222150
Broadcast packets received: 0
Multicast packets sent: 0
Broadcast packets sent: 0
Total receive errors: 0
Receive length errors: 0
Receive over errors: 0
Receive CRC errors: 0
Receive frame errors: 0
Receive FIFO errors: 0
Receive missed errors: 0
Total transmit errors: 0
Transmit aborted errors: 0
Transmit carrier errors: 0
Transmit FIFO errors: 0
Transmit heartbeat errors: 0
Transmit window errors: 0
The counters above are reset to zero when the ESXi host is rebooted.
watch esxcli network nic stats get -n vmnic2 | grep "Receive packets dropped"
Normally, in a healthy environment, any values with the string "errors" in their description would be zero (or if not, then very small, especially as a percentage of the overall total bytes / packets sent and received.
Note: This solution is for ESXi host physical NICs.
ESXi
Note: These changes impact network adapter performance and must be validated by the hardware vendor who supplies the network adapter.
FIFO or Missed errors (one or the other, not necessarily both) will increment and accumulate if physical NIC is not able to handle the peak load of incoming packets with current rx
ring buffer size.
Use the following commands to check the current rx
ring buffer size and maximum (preset):
esxcli network nic ring preset get -n vmnicX
esxcli network nic ring current get -n vmnicX
Review the output and check the current rx
ring buffer size compared to the preset maximum rx
ring buffer size the NIC supports.
As an example, for a NIC that supports a preset maximum of 4096, you could first try increasing this value to 1024, and then 2048 (if 1024 was not enough to prevent errors), and finally 4096.
Note: Do the following steps with the ESXi host in maintenance mode, to avoid any potential production impact. Use an out-of-band connection (iLO, DRAC, etc.), when changing the rx
ring buffer size to ensure you can change it back if the connection is disrupted because of the change.
(Use "-t number" to change the transmit buffer if needed)
esxcli network nic ring current set -n vmnicX -r number
IMPORTANT NOTES:
1) These changes impact network adapter performance and must be validated by the hardware vendor who supplies the network adapter. If there are any questions on the above commands, refer to the hardware vendor.
2) Also, some hardware vendors have ways of increasing the default ring buffer size, as part of "Tuning Guidelines" for "Virtual Interface Cards"