从物理独立 SQL Server 2008 R2 / W2k8 R2 迁移到 VMWare SQL Server 2014 / Win 2012 R2 后,我们的应用程序中出现间歇性登录超时。
它每天大约发生 5 次,因此很难排除故障。
失败信息
错误:Microsoft SQL Server Native Client 10.0:由于登录前响应延迟,无法完成登录过程。
错误:Microsoft SQL Server Native Client 10.0:登录超时已过期。
更多细节
- 我很确定这
sp_configure
两种情况都是一样的。 - 与以前的服务器相比,我们的 cpu 更少,但Max Worker Threads还可以。
- 当我在 SQL Server 上本地监视连接时,它工作正常,同时我的应用程序登录超时已过期。
- 配置远程查询超时不会解决我的问题。
- 我们正在使用 VMXNET3 虚拟网卡驱动器。
我在这里回答我自己的问题,以帮助那些经历相同行为的人。在通过互联网搜索进行多次观察和实验后,我在接下来的步骤中找到了解决此问题的方法。确保在投入生产之前测试所有内容。
在 SQL Server 和客户端应用程序服务器上禁用 TCP Chimney 功能:
禁用系统级注册表上的 TCPChimney 和卸载功能。
您可以通过
"Netsh int ip set chimney DISABLED"
从命令提示符运行命令来完成。但是你可以手动完成。去注册表
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters"
一个。双击 EnableTCPChimney 注册表项。如果任何条目不存在,请通过右键单击空白区域并单击创建 DWORD(32 位)来创建它。
湾。在编辑 DWORD 值对话框中,在数值数据框中键入 0,然后单击确定。
C。双击 EnableRSS 注册表项。
d。在编辑 DWORD 值对话框中,在数值数据框中键入 0,然后单击确定。
e. 双击 EnableTCPA 注册表项。
F。在编辑 DWORD 值对话框中,在数值数据框中键入 0,然后单击确定。
G。创建注册表项“SynAttackProtect”并 - 在“编辑 DWORD 值”对话框中,在“数值数据”框中键入 0,然后单击“确定”。
H。重新启动服务器。
一个。单击开始,单击运行,键入 ncpa.cpl,然后单击确定。
湾。右键单击网络适配器对象,然后单击“属性”。
C。单击配置,然后单击高级选项卡。
d。在“属性”列表中,单击“接收端缩放”,在“值”列表中单击“禁用”,然后单击“确定”。
e. 在“属性”列表中,单击“TCP/IP 卸载”,在“值”列表中单击“禁用”,然后单击“确定”。
F。对每个网络适配器对象重复步骤 2 到 5。
一世。卸载接收 IP 校验和
ii。卸载接收 TCP 校验和
iii. 卸载 TCP 分段
iv。卸载传输 IP 校验和
v. 卸载传输 TCP 校验和
相关文章:
有关 Windows Server 2008 中 TCP 烟囱卸载、接收端缩放和网络直接内存访问功能的信息:http: //support.microsoft.com/kb/951037
应用程序连接到正在运行的服务器上的 SQL Server 时出现错误消息Windows Server 2003:“一般网络错误”、“通信链路故障”或“传输级错误”:http: //support.microsoft.com/kb/942861
关于性能影响:
TCP 烟囱卸载 – 对 SQL Server 工作负载的可能性能和并发影响:http: //blogs.msdn.com/b/psssql/archive/2008/10/01/windows-scalable-networking-pack-possible-performance-and-并发影响到 sql-server-workloads.aspx
TCP TIME-WAIT Delay & MaxUserPort :
需要在我们从客户端应用程序连接到 SQL Server 的机器上进行以下更改。将其普遍添加到您的应用程序/Web 服务器上。
5. TCP TIME-WAIT 延迟:
将可用的 TcpTimedWaitDelay 注册表项设置
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
为 30 秒。如果注册表项不存在,请创建它们并将其设置为我们上面建议的值。
6. MaxUserPort:
将可用的 MaxUserPort 注册表项设置
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
为 65,000。同样,如果注册表项不存在,请创建它们并将其设置为我们上面建议的值。有关详细信息,请参阅以下文章:
TCP TIME-WAIT 延迟:https
: //technet.microsoft.com/en-us/library/cc938217.aspx MaxUserPort:https ://technet.microsoft.com/en-us/library /cc938196.aspx