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
复制相似问题