需要帮助整理 ethtool (EL7/EL8) 报告的数据包丢失统计数据

需要帮助整理 ethtool (EL7/EL8) 报告的数据包丢失统计数据

我一直在尝试了解掉线的详细信息,因为操作系统的各种工具(以及各个级别)都会报告掉线情况。到目前为止,我通过谷歌搜索找到的大部分信息对我来说似乎都比较“不着边际”。

首先,我要说明的是,我所查看的示例主机显示 中没有出现任何丢包/proc/net/softnet_stat。这说明 NIC 环形缓冲区的大小可能足够大。现在,转到ethtool...

NIC 多队列如下所示:

# ethtool -l em1
Channel parameters for em1:
Pre-set maximums:
RX:     16
TX:     16
Other:      n/a
Combined:   n/a
Current hardware settings:
RX:     16
TX:     16
Other:      n/a
Combined:   n/a

现在,以下是同一接口的 rx drop 的样子:

# ethtool -S em1 | grep rx.*dropped:
     rx_dropped: 1742
     rx0_dropped: 0
     rx1_dropped: 0
     rx2_dropped: 0
     rx3_dropped: 0
     rx4_dropped: 0
     rx5_dropped: 0
     rx6_dropped: 0
     rx7_dropped: 0
     rx8_dropped: 0
     rx9_dropped: 0
     rx10_dropped: 0
     rx11_dropped: 0
     rx12_dropped: 0
     rx13_dropped: 0
     rx14_dropped: 0
     rx15_dropped: 0

我的假设这里的 16 个独立队列与 NIC 环形缓冲区多队列相关。这里的所有零似乎与我在 中看到的情况一致softnet_stat。此外,我假设如果发生任何丢弃(目前没有发生),则计算在内任何丢弃softnet_stat都会反映在此ethtool输出中。

剩下的就是一些模糊的'rx_dropped'字段,它实际上是在递增。因此,我对此的假设是,它与 NIC 环形缓冲区无关,而是一个更高协议的丢弃计数器。这个计数实际上反映在ip -s接口的统计数据中:

# ip -s link show dev em1
2: em1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 9000 qdisc mq master bond0 state UP mode DEFAULT group default qlen 1000
    link/ether 94:18:82:70:2e:42 brd ff:ff:ff:ff:ff:ff
    RX:       bytes      packets errors dropped  missed   mcast
    219512805660516 147616023841      0    1742       0 5624266
    TX:       bytes      packets errors dropped carrier collsns
    649765242476657 450168813646      0       0       0       0

我相信这些丢失可能是由许多与协议相关的问题造成的,例如格式错误的数据包、坏端口、应用程序缓冲区拥塞等等。

这看起来像是一个合理的分析,可以解释所报告的“不同”的下降统计数据吗ethtool -S

相关内容