咨询热线:4006-75-4006
售前:9:00-23:30 备案:9:00-18:00 技术:7*24h
问题主要出现在Windows环境中,主要原因是应用程序频繁的连接访问数据库,而系统会为每个连接动态分配一个端口,Windows Server 2008 R2默认可供动态分配使用的端口只有16383 (49152 - 65535)个,这样的话,大并发的情况下就会导致动态端口占用完的情况,解决办法如下:
改变可用动态端口范围
在修改之前我们可以查看一下默认到底是多少:
netsh int ipv4 show dynamicport tcp netsh int ipv4 show dynamicport udp netsh int ipv6 show dynamicport tcp netsh int ipv6 show dynamicport udp
然后可以通过以下命令来配置:
netsh int <ipv4|ipv6> set dynamic <tcp|udp>start=number num=range
例如:
netsh int ipv4 set dynamicport tcp start=10000 num=50000 netsh int ipv4set dynamicport udp start=10000 num=50000 netsh int ipv6set dynamicport tcp start=10000 num=50000 netsh int ipv6set dynamicport udp start=10000 num=50000
到此或许我们就有个疑问,我么可以设置的起始端口是多少,最大可以设置多少个端口,官方说明如下:
The minimum range of ports that can be set is 255. Theminimum starting port that can be set is 1025. The maximum end port (based onthe range being configured) cannot exceed 65535
也就是说 start的最小值是1025,num指的是范围,最小值是255,最大值及start + num < 65535.