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 が利用可能です。