To check the details of the physical network adapters/vmnic from the ESXi host, follow the steps below
esxcli network nic list
or esxcfg-nics -l
Sample output of the command :-
Name PCI Device Driver Admin Status Link Status Speed Duplex MAC Address MTU Description
------- ------------ ------ ------------ ----------- ------ ------ ----------------- ---- -----------
vmnic0 0000:01:00.0 ixgben Up Up 1000 Full ec:f4:bb:##:##:## 1500 Intel(R) Ethernet Controller X540-AT2
vmnic1 0000:01:00.1 ixgben Up Up 1000 Full ec:f4:bb:##:##:## 1500 Intel(R) Ethernet Controller X540-AT2
The esxcli network nic stats get -n vmnic#
command may show error or drop counters that are greater than zero, on one or more physical network adapters.
Below is an example output:$ 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
VMware ESXi 7x
VMware ESXI 8x
The data these counters display are additive of issues that are external to the ESXi kernel and only what is being reported to the ESXi host from the NIC driver.
When these counters show higher values, the rate that the numbers increase can be a helpful tool. To monitor the counters and see if the numbers are increasing, use the command below:
$ watch esxcli network nic stats get -n vmnic#
It is important to note that in some instances the numbers associated with the counters can be rather large or it may not be known if the increased values are new or from a previous issue. It may be helpful to clear them before proceeding with the investigation. To clear the values the ESXi host will need to be rebooted:
In a healthy environment, "errors" should either be zero, or very small as a percentage of the overall total.
Common Counter Meanings:
nicinfo.sh.txt
file that is contained in the commands
directory of ESXi host log bundles. NIC statistics for vmnic0:
Packets received: 1880190132
Packets sent: 1887598404
Bytes received: 264206918890
Bytes sent: 269243305508
Receive packets dropped: 11592374
Receive packets dropped
.rx
) discards are noted:[rxq1] discards rx: 11585755
[rxq2] discards rx: 6619
Receive packets dropped
value is 11592374. Packets received: 1707183512
Packets sent: 2164487593
Bytes received: 1031748541320
Bytes sent: 1903235134748
Receive packets dropped: 1
Transmit packets dropped: 0
Multicast packets received: 92507460
Broadcast packets received: 88183479
Multicast packets sent: 161466
Broadcast packets sent: 448062
Total receive errors: 200
Receive length errors: 200
Packets received: 1707183512
Packets sent: 2164487593
Bytes received: 1031748541320
Bytes sent: 1903235134748
Receive packets dropped: 1
Transmit packets dropped: 0
Multicast packets received: 92507460
Broadcast packets received: 88183479
Multicast packets sent: 161466
Broadcast packets sent: 448062
Total receive errors: 69588
Receive length errors: 0
Receive over errors: 0
Receive CRC errors: 1
Receive frame errors: 0
Receive FIFO errors: 0
Receive missed errors: 69587
Packets received: 1707183512
Packets sent: 2164487593
Bytes received: 1031748541320
Bytes sent: 1903235134748
Receive packets dropped: 1
Transmit packets dropped: 0
Multicast packets received: 92507460
Broadcast packets received: 88183479
Multicast packets sent: 161466
Broadcast packets sent: 448062
Total receive errors: 9464
Receive length errors: 0
Receive over errors: 9463
Receive CRC errors: 1
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
Packets received: 1707183512
Packets sent: 2164487593
Bytes received: 1031748541320
Bytes sent: 1903235134748
Receive packets dropped: 1
Transmit packets dropped: 0
Multicast packets received: 92507460
Broadcast packets received: 88183479
Multicast packets sent: 161466
Broadcast packets sent: 448062
Total receive errors: 1335389
Receive length errors: 0
Receive over errors: 9463
Receive CRC errors: 1
Receive frame errors: 0
Receive FIFO errors: 1325896
Receive missed errors: 29
Total transmit errors: 0
Transmit aborted errors: 0
Transmit carrier errors: 0
Transmit FIFO errors: 0
Transmit heartbeat errors: 0
Transmit window errors: 0
Packets received: 1707183512
Packets sent: 2164487593
Bytes received: 1031748541320
Bytes sent: 1903235134748
Receive packets dropped: 1
Transmit packets dropped: 0
Multicast packets received: 92507460
Broadcast packets received: 88183479
Multicast packets sent: 161466
Broadcast packets sent: 448062
Total receive errors: 1
Receive length errors: 0
Receive over errors: 0
Receive CRC errors: 1
Packets received: 460935505
Packets sent: 765907671
Bytes received: 1185639933809
Bytes sent: 1891036423582
Receive packets dropped: 0
Transmit packets dropped: 0
Multicast packets received: 6340187
Broadcast packets received: 1558633
Multicast packets sent: 844076
Broadcast packets sent: 247884
Total receive errors: 28910
rxq0: totalPkts=87671882 totalBytes=38185291951 nonEopDescs=0 allocRxBufFail=0 csumErr=11882
rxq1: totalPkts=4226250 totalBytes=4885323247 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq2: totalPkts=705583 totalBytes=432939698 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq3: totalPkts=1257818 totalBytes=1888832183 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq4: totalPkts=0 totalBytes=0 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq5: totalPkts=0 totalBytes=0 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq6: totalPkts=0 totalBytes=0 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq7: totalPkts=0 totalBytes=0 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq8: totalPkts=38806293 totalBytes=19133491524 nonEopDescs=0 allocRxBufFail=0 csumErr=4778
rxq9: totalPkts=56875809 totalBytes=20499650948 nonEopDescs=0 allocRxBufFail=0 csumErr=4697
rxq10: totalPkts=89970461 totalBytes=113033495851 nonEopDescs=0 allocRxBufFail=0 csumErr=7554
rxq11: totalPkts=27056893 totalBytes=139387254694 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq12: totalPkts=2661580 totalBytes=1359078483 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq13: totalPkts=148570974 totalBytes=789839228623 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq14: totalPkts=684135 totalBytes=320509941 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq15: totalPkts=1636002 totalBytes=1949671803 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq16: totalPkts=7216110 totalBytes=48745812682 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq17: totalPkts=69642 totalBytes=101531218 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq18: totalPkts=50 totalBytes=16614 nonEopDescs=0 allocRxBufFail=0 csumErr=0
rxq19: totalPkts=1424929 totalBytes=2134237438 nonEopDescs=0 allocRxBufFail=0 csumErr=0
Below are further troubleshooting steps that may help while investigating physical NIC errors:
$ esxcli network nic ring preset get -n vmnic#
$ esxcli network nic ring current get -n vmnic#
Information Regarding Physical NIC Ring Buffers:
A ring buffer is used to allocate a section of memory which is like a temporary holding area for packets whose packet rate may be so high that the code required to process them has trouble keeping up.
Each type of network adapter has a preset maximum which is determined by the device driver. This is revealed by the above command featuring preset
.
The preset maximum is usually higher than the default setting which is allocated when ESXi is installed. This is revealed by the above command featuring current
.
Below is an example of the output from the buffer commands above (the output may differ between vendors):
Current Ring Size:
RingInfo:
RX: 1023
RX Mini: 0
RX Jumbo: 0
TX: 1023
Preset Maximum Ring Size:
RingInfo:
Max RX: 4095
Max RX Mini: 0
Max RX Jumbo: 0
Max TX: 4095
With the development of higher and higher NIC speeds and physical switches, and applications which involve higher volumes of TCP/IP packets and packet rates, it is becoming more common to see situations where increasing the physical uplink ring buffer sizes to the preset maximums, will reduce the possibility of drivers being unable to cope with high packet arrival rates, however confirmation from the NIC vendor is recommended prior to making any changes.
Command to increase both rx and tx:
esxcli network nic ring current set -n vmnic4 -r 4096 -t 4096
For receive ring buffer only:
esxcli network nic ring current set -n vmnic4 -r 4096
Max value will depend on the one got from the get command:
esxcli network nic ring preset get -n vmnicX
NOTE : Confirm with hardware vendor the recommended value to be set.
There may be a log message that populates for vSAN environments stating "High pNic error rate detected" which takes data from a specific group of the counters listed above that can impact vSAN performance. Please refer to Alarm about high pNIC error rate being detected for more information if this error message is present.