tcp建立连接过多,导致新的请求进不来超时

Blade 已结 2 236
周一
周一 剑童 2024-06-14 11:18

发现问题的契机:用户反馈系统过段时间就会很卡顿并会报错,一开始我以为是新服务器的问题,所以我优化了数据库,重启后速度有了明显提升可是快到下班又变的很卡,于是我在网页上自己打请求,果真每过几十个请求后就会出现无法连接的情况(大部分浏览器都是超过60秒无响应就会报错),于是我打开服务器查看tcp连接就发现了恐怖的一幕。如下图一直在回环调用,状态都是已建立,这样的请求有八百多个,首先我想到可能是定时任务太多才导致的,关闭定时任务后还是一样,然后我就查看其它项目是否一样的情况,查看后只要是这个框架都会有这样的奇怪请求出现。

3f4d939e0cbab5408ef3218c7775c4d.png

2条回答
  •  admin
    admin (最佳回答者)
    2024-06-14 11:22

    本地启动原版工程(不含你的业务代码)做测试持续100个不同的请求。看看是否会有同样的问题出现。

    如果没有出现则说明是业务模块导致,需要逐个排查。

    如果出现则说明是框架本身问题,麻烦把测试方法、步骤、参数发到我们的邮件:bladejava@qq.com,我们来安排排查。


    另外我们的演示系统每天都有大量访问请求,还没有出现过这种情况。

    0 讨论(1)
  • 2024-06-17 14:25

    事情又有了新的进展,最终确认是java  nio的机制具体可以参考Java NIO类库Selector机制解析(上)_sun.nio.ch.windowsselectorimplmore-CSDN博客,写的很不错不过却无法解决,只能把服务器调整成Linux。

    0 讨论(0)
提交回复