小编Phi*_* P.的帖子

SQL Server 2014/2016 (Win2K12R2) 和 Winsock 限制 - 如何应对?

我们遇到了与 SQL Server 的连接问题,经过一周的深入研究后,我能够将其确定为 Winsock 限制。这是描述:

  • 我们在 Windows Server 2012 R2 上运行了 SQL Server 2014(和 2016)Ent 安装。虚拟化与非虚拟化。我们在两种环境中都观察到了这个问题。
  • 客户端使用连接池(请不要建议打开它,这是问题的根源,我知道,但我对此无能为力
  • 客户端以极高的速度创建和关闭新连接:通常,单个客户端每秒关闭/打开 1500 个连接。每个 SQL Server 有 20-25 个客户端同时执行此操作。

现在,在工作日的某些时间点,我们会遇到流量突发,这实质上使新连接速率飙升至每秒 2500-3500 次连接尝试,并持续大约 2-3 秒。

这就是乐趣开始的时候:客户端在相同的 2-3 秒突发期间收到连接错误。

这就是我们在所有这些连接尝试的网络跟踪中看到的: 对 SYN 的 RST,ACK 响应

我们已经确认和所做的:

  1. 不是端口耗尽,无论是在服务器上还是在客户端上。
  2. 不是SQL Server 工作线程耗尽。以下是演示它的图表: 服务器线程和 SQL Worker 线程
  3. 这是不是一个TIME_WAIT问题,由客户以前的连接是优雅与关闭FIN, ACK- ACK- FIN, ACK-ACK序列。
  4. 连接未到达 SQL Server 并被 Winsock 拒绝。这是一个演示它的 PerfMon 图: 被 Winsock 拒绝的连接
  5. 我们尝试调整 NIC 设置和 Windows TCP/IP 功能设置(RSS、TSO、缩放窗口 - …

sql-server network windows-server connectivity

5
推荐指数
1
解决办法
1086
查看次数