When using an SO_RCVBUF
of 10485760 (which is also the current limit as stipulated by sysctl
's net.core.rmem_max
setting, and sending UDP packets faster than the receiving side is able to handle, the rx_queue
column in /proc/net/udp
always grows to pretty much exactly twice the size of SO_RCVBUF
. 20972544 was the highest value I could observe.
So is the SO_RCVBUF not being adhered to? Or is the output of /proc/net/udp wrong?
My system:
uname -a
Linux mybox 4.3.0-1-amd64 #1 SMP Debian 4.3.3-5 (2016-01-04) x86_64 GNU/Linux
From the socket(7) man page:
Note that the man page indicates the kernel will double the specified buffer value for bookkeeping overhead.