Linux Kernel TCP/IP Stack — 网卡监控
目录
ethtool -S
查看网卡统计信息。例如:接收和发送的数据包总数,接收和发送的流量,丢弃的包数量,错误的数据包数量等。
监控这些数据比较困难。因为用命令行获取很容易,但是以上字段并没有一个统一的标准。不同的驱动,甚至同一驱动的不同版本可能字段都会有差异。
可以先粗略的查看 “drop”, “buffer”, “miss” 等字样。然后,在驱动的源码里找到对应的更新这些字段的地方,这可能是在软件层面更新的,也有可能是在硬件层面通过寄存器更新的。如果是通过硬件寄存器的方式,就得查看网卡的 data sheet(说明书),搞清楚这个寄存器代表什么。ethtoool 给出的这些字段名,有一些是有误导性的(misleading)。
sysfs
sysfs 也提供了统计信息,但相比于网卡层的统计,要更上层一些。
-
可以获取的 ens33 的接收端数据包的类型有这些:
-
获取接收到的数据包的总数为:
不同类型的统计分别位于 /sys/class/net/{NIC}/statistics/ 下面的不同文件,包括 collisions, rx_dropped, rx_errors, rx_missed_errors 等等。
要注意的是,每种类型代表什么意思,是由驱动来决定的,因此也是由驱动决定何时以及在哪里更新这些计数的。你可能会发现一些驱动将一些特定类型的错误归类为 drop,而另外一些驱动可能将它们归类为 miss。
这些值至关重要,因此需要查看对应的网卡驱动,搞清楚它们真正代表什么。
/proc/net/dev
/proc/net/dev 提供了更高一层的网卡统计。
这个文件里显示的统计只是 sysfs 里面的一个子集,但适合作为一个常规的统计参考。
如果对这些数据准确度要求特别高,那必须查看内核源码 、驱动源码和驱动手册,搞清楚每个字段真正代表什么意思,计数是如何以及何时被更新的。
文章来源: is-cloud.blog.csdn.net,作者:范桂飓,版权归原作者所有,如需转载,请联系作者。
原文链接:is-cloud.blog.csdn.net/article/details/123320114
- 点赞
- 收藏
- 关注作者
评论(0)