FreeBSD netstat -di, Idrop против Drop and drop от NIC или ядра?

В 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 или из буфера ядра? Например, если сетевой адаптер не может принимать больше пакетов из-за отсутствия дескрипторов, будут ли потерянные пакеты сообщаться как одно из значений отбрасывания в netstat?

Я спрашиваю, потому что в Linux ifconfig читает из /proc/net/dev и, насколько я знаю, он удаляется только тогда, когда буфер ядра заполнен. Поэтому, если сетевой адаптер не будет принимать пакеты из-за отсутствия дескрипторов, вы не будете знать об этом, то есть он не попадет в память ядра.

это и netstat во FreeBSD имеет опцию -B для статистики буфера BPF, поэтому сейчас имеет смысл, что netstat -di сообщает о количестве сбрасываний от самого NIC/ драйвера.

Правильно Неправильно?

Любая помощь приветствуется, спасибо

1 ответ

Решение

Отсутствие программных дескрипторов (то есть кластеров mbuf) можно наблюдать с помощью:

# vmstat -z

смотреть на FAIL колонка.

Нехватка аппаратных дескрипторов может наблюдаться только через специфичный для драйвера интерфейс, например, для карт Intel e1000 через:

# sysctl dev.em.0.debug=1 && dmesg | tail
...
em0: Tx Descriptors avail failure = 0
em0: RX discarded packets = 0
...

Также счетчик дескрипторов может быть настроен через loader.conf в некоторых сетевых картах

Относительно вашего вопроса "капли против капель" вы должны искать источники

if_data.ifi_iqdrops
if_snd.ifq_drops

Если я правильно понял, один для ввода капель, другой для вывода капель (т.е. ALTQ).

PS. Для получения дополнительной информации обратитесь к разделу 3.3 "ifnet структура "из TCP/IP, иллюстрированный том 2, Stevens & Wright. Или исходный код вашей ОС.

Другие вопросы по тегам