Windows服務器【由於系統緩沖區空間不足或隊列已滿,不能執行套接字上的操作】問題調查


今天測試反應了一個問題,說接口返回的速度變慢了,並且返回的數據也不對。然后就找到了我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,使用命令(或者打開【任務管理器】)

tasklist 

我遇到的問題是 這個PID根本就不存在,這可怎么整,這個進程可能早就被回收了。突然間我想到是不是事件查看器能有些線索?

我打開的【事件查看器】,找到了【系統】,右鍵進行查詢,果然找到了問題症結所在。

 

我打開這個站點的配置文件,看到了那個redis的配置,是個域名!  ping一下這個域名

果然各種連不上,IP也對上了! 我們公司的策略連不上是正常的,這個配置不應該使用正式版的配置。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM