Windows Server端口用尽服务不能访问

Windows Server端口用尽服务不能访问

问题

应用程序页面有时访问正常,有时不能访问。

查询结果

网上说是有连接没有关闭,占用了端口资源,查一查,果然,进程都结束了,依然后很多TIME_WAIT状态的连接未释放,再查看所有的time_wait连接,直接过去好几屏,计数也不用了,肯定有问题。

#  windows下查看当前所有的tcp连接
netstat -ano  
 
# windows下查看所有8080端口的tcp连接
netstat -ano |findstr "8080"  
 
#  windows下查看所有的“TIME_WAIT”状态的tcp连接
netstat -ano |findstr "TIME_WAIT" 

# windows下统计time_wait出现的次数(按行统计) /i 忽略大小写 
netstat -ano |find /i /c "TIME_WAIT"   

设置TIME_WAIT

随即,查看一下有没有设TIME_WAIT的自动关闭时间(默认4分钟)、还有windows下的大端口服务(虽然系统总共可使用的Ports有65536个,但从本机连到外部网路(Outbound Connections)的连线数最多只会使用到5000个而已【此为系统默认值】)。

  • cmd--->regedit 进入注册表

  • 进入 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters

  • 新建 DWORD类型的注册表项,命名为:MaxUserPort 值数据: 60000(用十进制的格式录入进去,此值的有效范围为5000-65534

  • 新建DWORD类型的注册表项,命名为:TCPTimedWaitDelay值数据: 30TIME_WAIT的自动断开时间,默认为4分钟)

设置完大端口及time_wait时间后,重新启动tomcat,能正常启动了,访问应用也正常了。但是有个现象就是time_wait的连接数似乎没有降低,同事说是微软操作系统的bug,然后重新启动服务器,再观察time_wait的链接,发现变少了,而且也能自动释放了。

结论

由于大量的TIME_WAIT连接未被释放,导致占用的端口资源一直未被回收,出现了缓冲区空间不足的问题,应用也总是自动断线。

参考https://blog.csdn.net/woshiji594167/article/details/81874095?utm_source=app

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值