tomcat频繁死掉,All threads (512) are currently busy, waiting.Increase maxThreads (512) or check the servlet status警告

时间:2021-08-07 20:53:53
我的程序分为前台和后台两部分,前台程序负责接受用户请求,访问后台,得到结果表示出来。
后台程序负责访问数据库,返回结果。前后台程序部署在两台不同的linux服务器,采用apache+tomcat部署。

出现问题描述:前台tomcat频繁死掉
前台在并发量大的时候tomcat会出现All threads (512) are currently busy, waiting.Increase maxThreads (512) or check the servlet status警告(原来是200,后改为512也不行),此时apache的进程数会不断增加,直到
802最大值,然后不久tomcat就会死掉。从出现"All threads..."警告到tomcat死掉有20分钟左右的时间,这段时间访问前台是没有响应的,后台可以响应。

起初以为是前台程序程序的链接没有释放造成的,修改了代码,代码是用java写的,前台使用HttpClient访问后台,得到返回结果,加入了method.abort();method.releaseConnection();方法去释放链接,并且也加入了链接超时的处理,可同样会出现这个问题。奇怪的是在本地模拟测试,加大压力,会产生"All threads..."警告,但是本地tomcat不会死,而线上就会死。都有点怀疑是不是服务器本身的问题了。

实在找不出问题,请高手指点,谢谢!!

7 个解决方案

#1


查一查你的系统里是不是有
HttURLConnection 之类的,调用自己的页面的代码。他们可能忘了关了!

#2


紫竹是无处不在啊,支持你!

#3


一般都是连接未关闭 

#4


netstat 看一下就知道了

#5


引用 5 楼 lqfljf4401 的回复:
我也遇到过同样的问题!解决的办法:

我已经整理到这上面了,大家可以去看:http://www.netded.com/read-htm-tid-2367.html

我c 你MM

#1


查一查你的系统里是不是有
HttURLConnection 之类的,调用自己的页面的代码。他们可能忘了关了!

#2


紫竹是无处不在啊,支持你!

#3


一般都是连接未关闭 

#4


netstat 看一下就知道了

#5


引用 5 楼 lqfljf4401 的回复:
我也遇到过同样的问题!解决的办法:

我已经整理到这上面了,大家可以去看:http://www.netded.com/read-htm-tid-2367.html

我c 你MM