这也可能与BIND9 DNS服务器有关。我发现有时每秒服务器的查询数突然变为0,并且 然后持续几秒钟,通常超过10秒。然而 传入的DNS查询请求的数量永远不会低于500 第二
我向BIND9 src添加了一些调试日志,然后再次运行,然后我注意到了 线程会在recvmsg()返回之前等待几秒钟, 定期。当它挂起时,Recv-Q就会变满。 版本是BIND-9.9.6,但不幸的是当我切换到BIND- 9.9.9-P4,问题仍然存在。
然后我试过了 用Golang编写的另一个DNS服务器,我注意到问题从来没有 来了。查询率应保持稳定。我认为服务器使用的Golang的ReadFromUDP()函数只包装了系统调用recvfrom(),并且recvfrom()也不会阻塞。但ReadFromUDP()似乎继续尝试recvfrom(),而BIND9正在使用epoll。数据时 成功读取后,ReadFromUDP()将返回。我不确定这两种情况之间是否存在任何差异。
我使用的是CentOs 6.4,内核版本是2.6.32-358-el6.x86_64。
有没有人见过这样的人 那种问题?