1. 程式人生 > >Windows伺服器【由於系統緩衝區空間不足或佇列已滿,不能執行套接字上的操作】問題調查

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也對上了! 我們公司的策略連不上是正常的,這個配置不應該使用正式版的配置。