今天測試反應了一個問題,說接口返回的速度變慢了,並且返回的數據也不對。然后就找到了我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也對上了! 我們公司的策略連不上是正常的,這個配置不應該使用正式版的配置。