UDP RecvBufErrors devido a páginas pfmalloc em máquina levemente carregada

UDP RecvBufErrors devido a páginas pfmalloc em máquina levemente carregada

Minha caixa Linux está descartando pacotes UDP. Possui uma NIC 10GbeE 82599ES com ixgbedriver.

Executando ncpara receber pacotes como este:

$ nc -I 100000000 -l 2004 -u > /dev/null 

e enviando pacotes de uma máquina diferente com:

$ cat /dev/zero | nc 10.5.10.248 2004 -u 

tem os RcvbufErrors na máquina receptora aumentando /proc/net/snmploucamente. Curiosamente /proc/net/udpnão mostra pacotes descartados. Minha versão do kernel é:

$ uname -a
Linux titan 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1+deb8u2 (2017-03-07) x86_64 GNU/Linux

Pelo que eu sei, a única maneira de obter RcvbufErrors sem quedas de UDP é sefiltro_skretorna -ENOMEMemmeia_queue_recv_skb, o que acontece se a página do buffer do soquete for pfmemalloceditada, o que por sua vez acontece se a máquina estiver sob pressão de memória.

O estranho é que freediz que há muito espaço:

$ free -m
total       used       free     shared    buffers     cached
Mem:         32210      32016        194        178        352      29948
-/+ buffers/cache:       1715      30495
Swap:        65467        162      65305

Ajuda?! (Desde já, obrigado)

K

informação relacionada