出于某种原因,ip -s link
不显示与 相同的数字/proc/net/dev
,特别是溢出计数。
对于给定的接口,ip 显示没有溢出数据包:
$ ip -s link show eth-ext1
7: eth-ext1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:08:a2:0d:00:74 brd ff:ff:ff:ff:ff:ff
RX: bytes packets errors dropped overrun mcast
1038103044434 1099087192 0 0 0 401298
TX: bytes packets errors dropped carrier collsns
543051882227 844808055 0 0 0 0
虽然proc
我们看到非零溢出(这是我假设fifo
所指的):
$ cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
[...]
eth-ext1: 1038106099296 1099090833 0 0 467554 0 0 401301 543052535442 844810749 0 0 0 0 0 0
我倾向于相信接口上实际上有溢出的数据包,所以看起来输出ip link
不正确。有什么我想念的吗?
fifo 和 overrun 是不一样的。只需输入 ip -s -sa,就会有这样的东西
overrun — 导致丢包的接收器溢出总数。通常,如果接口溢出,则意味着内核中存在严重问题,或者您的机器对于该接口来说太慢了。
fifo(文件输入文件输出)错误