- Change default for so-sndbuf to 1m, to mitigate a cross-layer
issue where the UDP socket send buffers are exhausted waiting
for ARP/NDP resolution. Thanks to Reflyable for the report.
+ - Adjusted so-sndbuf default to 4m.
12 May 2025: Yorgos
- Merge #1280: Fix auth nsec3 code. Fixes NSEC3 code to not break on
# so-rcvbuf: 0
# buffer size for UDP port 53 outgoing (SO_SNDBUF socket option).
- # 0 is system default. Use 4m to handle spikes on very busy servers.
- # so-sndbuf: 1m
+ # 0 is system default. Set larger to handle spikes on very busy servers.
+ # so-sndbuf: 4m
# use SO_REUSEPORT to distribute queries over threads.
# at extreme load it could be better to turn it off to distribute even.
UDP port 53 outgoing queries. This for very busy servers handles spikes
in answer traffic, otherwise 'send: resource temporarily unavailable'
can get logged, the buffer overrun is also visible by netstat \-su.
-Default is 1M. If set to 0 it uses the system value. Specify the number
-of bytes to ask for, try "4m" on a very busy server. It needs some space
+Default is 4m. If set to 0 it uses the system value. Specify the number
+of bytes to ask for, try "8m" on a very busy server. It needs some space
to be able to deal with packets that wait for local address resolution,
from like ARP and NDP discovery, before they are sent out, hence
it is elevated above the system default by default. The OS caps it at
cfg->if_automatic = 0;
cfg->if_automatic_ports = NULL;
cfg->so_rcvbuf = 0;
- cfg->so_sndbuf = 1024*1024;
+ cfg->so_sndbuf = 4*1024*1024;
cfg->so_reuseport = REUSEPORT_DEFAULT;
cfg->ip_transparent = 0;
cfg->ip_freebind = 0;