我们有几台运行各种商业(如SQL Server)和内部应用程序的Windows 2008R2服务器。 这是一种虚拟的和物理的,所有这些已经运行了几年没有任何问题。
但是,在过去的几周里,一些服务器突然停止了build立新的networking连接。 一个例子就是我们通过一个普通的套接字连接到SQL的应用程序之一 – 它只是挂起。 尝试从受影响的服务器浏览到networking共享告诉我们
超出了本地计算机networking适配器卡的名称限制
这看起来好像老式的短暂的端口用尽了我,并且碰上了临时端口的数量暂时解决了这个问题
但是,即使有这个问题,服务器也只会在问题再次出现之前的几天。 而且,我看不到什么消耗了大量的端口 – 再次,服务器上没有任何改变,并且在运行不同types的应用的4个不同的盒子上发生了问题。
如果我看看最繁忙的服务器,在TCPView中运行SQL Server 2014,我们将显示大约1000个连接:
我已经运行了这个脚本 ,logging了短暂的端口使用情况,它永远不会超过几十个端口。
Process Explorer不显示任何令人兴奋的事情:
我的直觉是在七月份的“星期二补丁”中引起了这个问题,但我可能完全错了。 我们所知道的是,以前工作的服务器现在停止工作几天后,一切都修补到最新(无论是在微软和供应商的驱动程序方面),它影响多个服务器,物理和虚拟,并没有什么迹象通过短暂的端口。 任何人都可以build议如何隔离是什么造成的问题?
听起来像你怀疑七月更新是问题的根源有好处。 尝试从其中一台受影响的服务器上卸载2017年7月11日的汇总。 如果问题消失,请考虑联系MS支持? 再次,作为一个“已知的问题”,可能不是非常有效率的…
本更新KB4025341中的已知问题
症状:由于WLDAP32.DLL中的缺陷,执行LDAP引用追逐的应用程序可能会消耗太多的dynamicTCP端口(可能会耗尽它们)
解决方法:要解决此问题,请重新启动执行LDAP引用追踪的服务或应用程序以释放TCPdynamic端口。
这里提到的脚本可能有助于诊断哪个进程正在使用端口。 基本上它将netsh int ipv4 show dynamicportrange tcp
的输出与netstat –ano –p tcp
的输出结合起来以帮助诊断。 文中还提到这只是为了在用户模式进程中发现问题,解释了如何使用WinDBG来诊断内核模式进程中的问题。
这个线程还提到事件4231作为问题的另一个指标。
这是一个有趣的。 抓住了我的注意力,因为之前我遇到了与Windows服务器打开多个TCP连接的问题。 你loggingCPU,networking吞吐量,并注意到任何exception?
假设你正在死后,你可能检查了日志,没有发现任何exception。 交通量在上升吗? 任何可以解释错误上升的东西。 4个盒子在同一个子网上? 通过不同的应用程序访问?
其他要看的东西,共享连接。 当创build任何股票时,是否会扩大短暂港口的范围?
TCP TCB连接。 我认为它在2000年2K8 R2。 仔细检查一下。 祝你好运。