使用 netstat -an,我设置了 Recv-Q 已满的消息。它正在填充至 rmem_max:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 1894912 0 10.0.64.150:53 0.0.0.0:*
(它一直“填充”直到崩溃)
尺寸:
/proc/sys/net/core/optmem_max:20480
/proc/sys/net/core/rmem_default:8388608
/proc/sys/net/core/rmem_max:8388608
/proc/sys/net/core/wmem_default:229376
/proc/sys/net/core/wmem_max:229376
netstat -su 的结果:
Udp:
426057 packets received
37152 packets to unknown port received.
2350589 packet receive errors
517422 packets sent
谁有主意?
答案1
显然日志记录有问题。我将 dns 服务器设置为记录到 rsyslog。在跟踪时,系统日志的文件描述符似乎不起作用。
通过将日志绑定到本地文件来解决:
logging{
channel bindlog {
file "/var/log/named/bind.log" versions 3 size 5m;
severity info;
print-time yes;
print-severity yes;
print-category yes;
};
category default{
bindlog;
};
};
答案2
这意味着您的网卡和内核能够很好地接收数据包,但无论您的 DNS 服务器是什么,或者侦听 UDP 53 的任何服务器都不会经常或足够快地从 UDP 套接字读取数据。