SQL Server出现错误: 4014
2016-03-21 13:06
615 查看
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。
![](http://images2015.cnblogs.com/blog/257159/201603/257159-20160321125846511-1152313312.jpg)
![](http://images2015.cnblogs.com/blog/257159/201603/257159-20160321125928183-1726143006.jpg)
于是谷歌了一下,发现了一篇文章: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
![](http://images2015.cnblogs.com/blog/257159/201603/257159-20160321130045776-1172216897.jpg)
禁用之后,再执行netstat命令看一下处理是否迁移回CPU
netstat -t
![](http://images2015.cnblogs.com/blog/257159/201603/257159-20160321130231292-594445588.jpg)
如果最后一列是InHost,那么表示数据包的处理逻辑是CPU上完成,而不是在网卡上完成
至此,问题解决,errorlog也没有发现4014错误
如有不对的地方,欢迎大家拍砖o(∩_∩)o
[b]本文版权归作者所有,未经作者同意不得转载。[/b]
相关文章推荐
- oracle 表死锁
- [数据库]数据库基础知识复习
- Mysql 远程访问
- ORACLE 创建与使用视图
- mysql直接导出数据
- SQL查询包含汉字的行
- 关于分布式数据库,你该了解的几件事
- mysql 数据库查询语句 左外连接 右外连接 和内连接区别
- Web安全之SQL注入攻击技巧与防范
- 数据库存储文件
- 数据库的读现象浅析
- 血腥!实况转播SQL注入全过程,让你知道危害有多大。
- 使用变量分组的sql : 排序后再分组,取分组的第一个
- 数据库中的事务理解
- mysql锁-乐观锁
- python 之redis
- (转)mysql分表的3种方法
- Redis学习小结
- mysql查询更新时的锁表机制分析(只介绍了MYISAM)
- windows下postgresql的使用注意问题