CLOSE_WAIT、NON_ESTABLISHED 连接数过高,导致tomcat服务直接宕机
TCP常见配置参考地址:
http://shift-alt-ctrl.iteye.com/blog/1966744;
https://www.cnblogs.com/fczjuever/archive/2013/04/05/3000697.html
以上图最大连接数接近了2000,这个对于单机环境来说基本已经到达了最大的负载,导致服务器的tomcat应用服务器直接宕机,
其中最多的连接是CLOSE_WAIT达到了1029个,NON_ESTABLISHED达到了500个,这都是由于后台服务没及时响应而app端主动断开连接,导致后台的连接没有全部释放,直接成几数增长,服务器直接宕机
关于为什么会出现这种不正常的连接,可以参考:https://blog.csdn.net/kkgbn/article/details/77859881这篇文档
以下修改策略有两个地方:
1、修改windows服务TCP配置keepAliveTime参数为1800000,即30分钟,默认为2个小时,这个地方的单位为毫秒
windows:
开始->运行->输入regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
2、修改tomcat的connect配置信息:keepAliveTimeout 更改为60s
总结:经过几天的测试完美解决问题,服务器再没有宕机过,当然在产品上线之前也做过tomcat和数据库sql优化,不是全靠这一个配置就能解决所有问题的