我们有 Linux VM red hat 7.2 版本,带有两个 LAN 接口
Linux 机器在 ESXi - 5.5.0 上崩溃
我们有一个非常奇怪的问题,
该冲突是 ifconfig 命令与 ethtool 命令之间的结果!
为什么 ethtool 的结果没有表明 eth1 上存在掉线问题
而从 ifconfig 中我得到的指示表明 eth1 存在掉线问题?
(查看 ifconfig - 掉线时数字增加表示掉线错误)
# ethtool -S eth1 | grep -i drop
drv dropped tx total: 0
drv dropped tx total: 0
drv dropped rx total: 0
drv dropped rx total: 0
eth1 上的 ifconfig 结果:
# ifconfig -a | grep RX | grep dropped
RX errors 0 dropped 123136 overruns 0 frame 0
RX errors 0 dropped 140938047 overruns 0 frame 0
RX errors 0 dropped 0 overruns 0 frame 0
# ifconfig -a | grep RX | grep dropped
RX errors 0 dropped 123136 overruns 0 frame 0
RX errors 0 dropped 140938083 overruns 0 frame 0 <-------------- after second
RX errors 0 dropped 0 overruns 0 frame 0
第二,将 ethtool 的结果视为真实结果,而 ifconfig 的结果实际上表明存在问题,这样正确吗?
备注 - 下垂问题仅显示在 Linux 版本 7.x 上,而不显示在 Linux 版本 6.x 或 5.x 上
答案1
该ethtool
命令将 RX(接收)丢包分为不同的类别,但将 TX(发送)丢包归为一组。例如,运行ifconfig
显示:
# ifconfig eth0 | grep dropped
RX packets:169700121 errors:0 dropped:2811 overruns:0 frame:0
TX packets:173242722 errors:0 dropped:0 overruns:0 carrier:0
但如果我现在运行ethtool
并仅查找 RX 错误,我会看到:
# ethtool -S eth0 | egrep rx_.*_errors
rx_length_errors: 0
rx_over_errors: 0
rx_crc_errors: 0
rx_frame_errors: 0
rx_missed_errors: 2811
rx_long_length_errors: 0
rx_short_length_errors: 0
rx_align_errors: 0
rx_csum_offload_errors: 203
现在您可以看到由于 ,有 2811 个数据包被丢弃rx_missed_errors
。