发现问题的契机:用户反馈系统过段时间就会很卡顿并会报错,一开始我以为是新服务器的问题,所以我优化了数据库,重启后速度有了明显提升可是快到下班又变的很卡,于是我在网页上自己打请求,果真每过几十个请求后就会出现无法连接的情况(大部分浏览器都是超过60秒无响应就会报错),于是我打开服务器查看tcp连接就发现了恐怖的一幕。如下图一直在回环调用,状态都是已建立,这样的请求有八百多个,首先我想到可能是定时任务太多才导致的,关闭定时任务后还是一样,然后我就查看其它项目是否一样的情况,查看后只要是这个框架都会有这样的奇怪请求出现。
本地启动原版工程(不含你的业务代码)做测试持续100个不同的请求。看看是否会有同样的问题出现。
如果没有出现则说明是业务模块导致,需要逐个排查。
如果出现则说明是框架本身问题,麻烦把测试方法、步骤、参数发到我们的邮件:bladejava@qq.com,我们来安排排查。
另外我们的演示系统每天都有大量访问请求,还没有出现过这种情况。
事情又有了新的进展,最终确认是java nio的机制具体可以参考Java NIO类库Selector机制解析(上)_sun.nio.ch.windowsselectorimplmore-CSDN博客,写的很不错不过却无法解决,只能把服务器调整成Linux。
扫一扫访问 Blade技术社区 移动端