Linux UDP 接收缓冲区的最大大小是多少?我认为它仅受可用 RAM 的限制,但是当我设置
rmem_max 为 5GB:
echo 5000000000 > /proc/sys/net/core/rmem_max
和 4GB 用于实际的套接字缓冲区(在 Erlang 中):
gen_udp:listen(Port, [{recbuf, 4000000000}])
当我测量缓冲区利用率时,它显示:
# netstat -u6anp | grep 5050
udp6 1409995136 0 :::5050 :::* 13483/beam.smp
我不能超过这个 1.4GB。对于较小的缓冲区大小,例如 500MB,实际缓冲区大小与配置值匹配。我的系统是 Debian 6.0,机器有 50GB RAM 可用。