我们经常在专用服务器上遇到奇怪的网络问题。它在 Xeon E5620 上运行 Windows Server 2012 R2 x64,具有 16 GB RAM 和 Intel 82575EB 网络适配器。
请注意,我们已经调整HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
键值TcpTimedWaitDelay
,并MaxUserPort
分别以30和65530。
我们的网站在某个随机时间点停止响应,原因是它们无法连接到本地数据库。此问题开始发生时大约需要 2 周的正常运行时间。系统日志开始收到 TCPIP 警告 4227 和 4231。它指出“由于所有此类端口都在使用中,从全局 TCP 端口空间分配临时端口号的请求已失败。”。
如果我跑
Get-Counter -Counter \TCPv4\*
Run Code Online (Sandbox Code Playgroud)
或者
Get-Counter -Counter \TCPv6\*
Run Code Online (Sandbox Code Playgroud)
或者
netstat -abn | find /c ":"
Run Code Online (Sandbox Code Playgroud)
我总是得到 500-1500 个连接的合理值,这甚至不接近 65K 的限制。
此外,“localhost”在本地停止解析为 ::1,恢复为 127.0.0.1
只有强制重启机器才能解决这种情况。
会不会是网络适配器问题?
更新 1
当我重新启动邮件服务器时,它再次发生并且似乎已经解决。奇怪的是,所有计数器都显示了 ~1000 个连接,其中 ~500 个目前处于活动状态,并且在尝试连接到与邮件服务器无关的数据库时仍然出现 10055 套接字错误。
更新 2 这很奇怪,但是邮件服务的每日重启完全解决了这个问题。