在FreeBSD上,Drop和Idrop在netstat输出中有什么区别?
$ netstat -di Name Mtu Network Address Ipkts Ierrs Idrop Opkts Oerrs Coll Drop bge0* 1500 <Link#1> 00:16:d4:e3:49:31 0 0 0 0 0 0 0 wpi0 2290 <Link#2> 00:1b:77:86:2d:fa 0 53068 0 179587 3 0 0
另外,netstat是从网卡还是从内核缓冲区获取丢弃计数? 例如,如果NIC由于缺less描述符而不能接受更多的数据包,丢失的数据包是否会被报告为netstat中的一个丢弃值?
我问,因为在Linux中,ifconfig从/ proc / net / dev读取,而且据我所知,它只有在内核缓冲区已满时才会丢弃。 所以如果网卡因为缺less描述符而不能接受数据包,你就不会知道它,也就是说它还没有进入内核内存。
那FreeBSD上的netstat有BPF缓冲区统计数据的-B选项,所以现在netstat -di报告NIC /驱动程序自身的丢弃数量是有意义的。
正确错误?
任何帮助表示赞赏,谢谢
缺乏软件decsriptors(即mbuf集群)可以通过以下方式观察到:
# vmstat -z
看看FAIL专栏。
缺less硬件描述符只能通过特定于驱动程序的接口进行观察,例如,通过以下方式访问Intel e1000卡:
# sysctl dev.em.0.debug=1 && dmesg | tail ... em0: Tx Descriptors avail failure = 0 em0: RX discarded packets = 0 ...
也可以通过一些NIC中的loader.conf来调整描述符的计数
关于你的问题“idrops与滴”你应该寻找来源
if_data.ifi_iqdrops if_snd.ifq_drops
如果我正确理解一个是input下降其他输出下降(即ALTQ )。
PS。 有关更多信息,请参阅TCP / IP画报第2卷Stevens&Wright的第3.3节“ ifnet结构”。 或者你的操作系统的源代码。