Мой linux box теряет UDP пакеты. Он имеет 10GbeE 82599ES NIC с ixgbe
драйвером.
Запуск nc
для получения пакетов типа этого:
$ nc -I 100000000 -l 2004 -u > /dev/null
и отправка пакетов с другой машины с помощью:
$ cat /dev/zero | nc 10.5.10.248 2004 -u
RcvbufErrors на принимающей машине /proc/net/snmp
растет как сумасшедший. Интересно, что /proc/net/udp
не показывает потерянных пакетов. Моя версия ядра:
$ uname -a
Linux titan 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux
Насколько я могу судить, единственный способ получить RcvbufErrors без сбросов UDP — этоsk_filterвозвращается -ENOMEM
вsock_queue_recv_skb, что происходит, если страница буфера сокета pfmemalloc
заполнена, что, в свою очередь, происходит, если машина испытывает нехватку памяти.
Странно, что там free
написано, что места много:
$ free -m
total used free shared buffers cached
Mem: 32210 32016 194 178 352 29948
-/+ buffers/cache: 1715 30495
Swap: 65467 162 65305
Помогите?! (Спасибо заранее)
К