top

SQL Server出现错误: 4014

SQL Server出现错误: 4014

 

线下的测试机器老是报错,从errorlog里看到大量的4014错误

A fatal error occurred while reading the input stream from the network. The session will be terminated (input error: 0, output error: 0).
错误: 4014,严重性: 20,状态: 16

 

于是谷歌了一下,发现了一篇文章:https://www.mssqltips.com/sqlservertip/3538/fixing-sql-server-fatal-error-4014/

大家知道现在的网卡内置功能都比较厉害,有些功能甚至可以代替CPU去执行,于是微软发布了Scalable Networking Pack (SNP) 可伸缩网络包,可伸缩网络包包括了以下3个主要功能

TCP/IP Chimney Offload
Receive Side Scaling (RSS)
Network Direct Memory Access (NetDMA)

 

 

大家可以用下面命令查看上面3个功能是否是enabled

netsh int tcp show global

 

一般操作系统会默认开启Chimney Offload功能,这个是TCP/IP网络包下推功能,本来是CPU处理的现在交给网卡处理,减轻CPU负担,加快网络包处理速度

但是不是所有网卡都支持Chimney Offload功能,由于线下测试机器是普通家用PC,所以网卡驱动并不带有这个内置功能

 

解决办法是禁用Chimney Offload

netsh int tcp set global chimney=disabled
netsh int tcp set global rss=disabled

禁用之后,再执行netstat命令看一下处理是否迁移回CPU

netstat -t

 

 

如果最后一列是InHost,那么表示数据包的处理逻辑是CPU上完成,而不是在网卡上完成

 

至此,问题解决,errorlog也没有发现4014错误

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

本文版权归作者所有,未经作者同意不得转载。

 

posted @   桦仔  阅读(3106)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示