linux - UDP receive queue full? -
i have application receives heavy udp traffic on port 12201 , have noticed of udp packets never make application (received kernel only).
when run
netstat -c --udp -an | grep 12201 i can see recv-q 126408, going below, never going above:
proto recv-q send-q local address foreign address state udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* udp 126408 0 :::12201 :::* does mean receive queue full? number 126408 come from? how can increase it?
sysctl config:
# sysctl -a | grep mem vm.overcommit_memory = 0 vm.nr_hugepages_mempolicy = 0 vm.lowmem_reserve_ratio = 256 256 32 vm.meminfo_legacy_layout = 1 vm.memory_failure_early_kill = 0 vm.memory_failure_recovery = 1 net.core.wmem_max = 124928 net.core.rmem_max = 33554432 net.core.wmem_default = 124928 net.core.rmem_default = 124928 net.core.optmem_max = 20480 net.ipv4.igmp_max_memberships = 20 net.ipv4.tcp_mem = 365760 487680 731520 net.ipv4.tcp_wmem = 4096 16384 4194304 net.ipv4.tcp_rmem = 4096 87380 4194304 net.ipv4.udp_mem = 262144 327680 393216 net.ipv4.udp_rmem_min = 4096 net.ipv4.udp_wmem_min = 4096
looks application using system default receive buffer, defined via sysctl
net.core.rmem_default = 124928 hence see upper limit in recv-q close above. try changing so_rcvbuf socket option in application higher values, max limit. defined in sysctl setting net.core.rmem_max = 33554432
dropped packet count due queue full, can seen via netstat -us (look packet receive errors)
Comments
Post a Comment