Windows服务器【由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作】问题调查...

当遇到系统报错'由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作'时,本文介绍了如何通过查看日志、端口占用情况、事件查看器等方法定位问题。发现大量TCP连接处于FIN_WAIT_2状态,指向同一Redis服务地址。通过事件查看器找到PID不存在的原因,最终在配置文件中发现问题源头——错误配置的Redis域名导致连接失败。
摘要由CSDN通过智能技术生成

今天测试反应了一个问题,说接口返回的速度变慢了,并且返回的数据也不对。然后就找到了我o(╥﹏╥)o。

第一个反应就是查日志,不查不要紧,一查吓一跳,整个服务器上所有的站点都报错了。异常信息如下:

System.AggregateException: One or more errors occurred. ---> System.Net.Sockets.SocketException: 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。

看着信息的提示应该是socket资源被耗尽了。第一反应就是重启系统,但是这只是应急的做法,后面一定还会出现,一定是程序哪里不对了。

 

首先,通过命令查看一下端口的占用情况

 netstat -ano 

果然有大量的Tcp连接处在了 FIN_WAIT_2 的状态,并且都是访问同一个地址,这个6379端口是Redis服务常用的端口(先怀疑是redis服务),

现在的问题就是定位是哪个进程了,根据提示 Pid=13220,使用命令(或者打开【任务管理器】)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值