負荷の低いシステムの pfmalloc ページによる UDP RecvBufError

負荷の低いシステムの pfmalloc ページによる UDP RecvBufError

私のLinuxシステムはUDPパケットを破棄しています。ドライバを含む10GbeE 82599ES NICがありますixgbe

次のようにncしてパケットを受信します。

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

別のコンピュータからパケットを送信します。

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

受信システムのRcvbufErrorが/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

私が知っている限り、UDPを削除せずにRcvbufErrorを取得する唯一の方法は次のとおりです。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

助ける? ! (事前に感謝)

K

ベストアンサー1

おすすめ記事