問題描述:
壓測時,使用500個線程,如果只是簡單壓測一下沒問題,如果持續個幾分鍾,就會拋出如上異常
解決方案:
在win7客戶端上做測試,結果發現tcp連接數達到16360多點就連不上去了,后來通過DOS下的netstat -a -n 命令,看到客戶端使用的端口號是從49152-65535這一段,而49152之前的都沒有使用(在windows8)。
在Windows vista和windows server 2008以前的系統中動態的客戶端端口范圍是1025到5000;在Windows vista和windows server 2008中,為了遵守IANA的推薦,把范圍擴展成49152到65535。
如此看來,應該是由於系統分配的端口不夠用導致的報錯,修改端口配置如下:
netsh int ipv4 set dynamicport tcp start=1025 num=64510
再次進行壓測,問題解決!
Windows Server 2008 R2 或 Windows 7 的多處理器計算機上的內核套接字泄漏,也可安裝補丁:KB2577795(Windows6.1-KB2577795-x64.msu)
補丁鏈接:http://thehotfixshare.net/board/index.php?autocom=downloads&showfile=13913