rx_packets
比rx_pkts_nic
大得多。为什么是这种情况?
有没有什么地方的医生解释了所有的NIC字段?
发布于 2019-07-10 19:18:22
ethtool -S
的输出是特定于驱动程序的。看来你用的是情报。
很可能您已经启用了一些卸载(GRO
-一般接收卸载,LRO
-大型接收卸载)。您可以检查ethtool -k <iface>
的输出。
在这种情况下,几个接收到的数据包(由rx_pkts_nic
计数)被合并到一个更大的包中(由rx_packets
计数)。只有这样,这个大的单个包才被传递到系统网络堆栈中。
不幸的是,我不知道详细描述各种NIC计数器的完整文档。他们中的大多数人都有直观的名字,但并不是全部。其中有些您可以尝试理解linux内核邮件列表消息。此外,你也可以尝试写到邮件列表中询问含义。
我已经查看了驱动程序的源代码,并发现了一些有趣的东西。
rx_packets
计数器值是从系统中网络设备的统计信息中接收的,而不是从硬件接收的。此值被计算为来自所有NIC队列的数据包的总和。此值还包括一个坏数据包。rx_pkts_nic
是从硬件接收的,也是从减为rx_missed
价值接收的。这个值似乎只包含很好的数据包(这个计数器的真实名称是gprc
,意思是good packets received count
)。rx_packets
和rx_pkts_nic
之间有差异,请检查错误计数器。ethtool --register-dump <iface>
命令。https://serverfault.com/questions/974730
复制相似问题