朋友公司的产品运行在windows+nginx+tomcat平台,发现连接接稍微一大,访问就有问题。在主机上通过netstat进行查看时,也发现有大量time_wait的情况 。在linux平台上这个问题非常好解决,通过sysctl.conf调节tcp/ip参数即可。windows下经确认也有类似的调节机制,其叫dynamicportrange。
一、windows7/win2008平台下
1、查看可用端口数
以下是我在win7下查看的结果
- C:\Users\thinkpad>netsh int ipv4 show dynamicportrange tcp
- 协议 tcp 动态端口范围
- ---------------------------------
- 启动端口 : 1025
- 端口数 : 13976
win2008下经查是 49152 through 65535 ,可用端口数16384个。
2、netsh命令修改可用端口数
- netsh int ipv4 set dynamicport tcp start=2000 num=63000
- netsh int ipv4 set dynamicport udp start=2000 num=63000
- netsh int ipv6 set dynamicport tcp start=2000 num=63000
- netsh int ipv6 set dynamicport udp start=2000 num=63000
3、time_wait超时时间调整
regedit打开注册表,添加
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- “MaxUserPort”=dword:0000fffe
- “TcpTimeWaitDelay”=dword:0000005 (缩短为5秒)
参考页面,微软support页。