По какой-то причине 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
неверный. Есть что-то, чего я не понимаю?
решение1
fifo и overrun не одно и то же. Просто введите ip -s -sa, будет что-то вроде этого
RX: bytes packets errors dropped overrun mcast
53152 864 0 0 0 0
RX errors: length crc frame fifo missed
0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
53152 864 0 0 0 0
TX errors: aborted fifo window heartbeat transns
0 0 0 0 0
overrun — общее количество перегрузок приемника, приводящих к потере пакетов. Как правило, если интерфейс переполнен, это означает серьезные проблемы в ядре или то, что ваша машина слишком медленная для этого интерфейса.
ошибки fifo (файл ввода-вывода)