工程中用到了spring2,打包成 war部署在jboss上。
在系统运行过程中,jboss的线程数不断增加,最终因为无法分配线程,导致 outofmemory。
还请高手们赐教,帮忙解决这个问题。谢谢
问题补充:
通过netstat -anp查看,发现有许多tcp连接处于 ESTABLISHED 状态。
如:
tcp 0 0 hpmcs01:8009 hpmcapp01:35799 ESTABLISHED
因apache和jboss采用ajp协议通讯,故产生很多此连接。
我现在怀疑是 每一个http请求过来以后,jboss都会产生一个新的连接线程来处理, 业务处理完成以后,新产生的连接就处于 ESTABLISHED状态。以至于线程数一直增长,最后导致 outofmemory。
问题补充:
多谢大家的回答,按照 小凯老公 的建议,重新安装了apache2.2服务器,采用http协议分发,配置如下:
ProxyPass /hhh balancer://hpcluster nofailover=On
<Proxy balancer://hpcluster>
BalancerMember http://10.48.194.5:8080/hhh/ min=2 smax=5 timeout=60 ttl=10 loadfactor=20
BalancerMember http://10.48.194.8:8080/hhh/ min=2 smax=5 timeout=60 ttl=10 loadfactor=90
</Proxy>
分发ok,通过 netstat 查看,发现很多的 CLOSE_WAIT连接一直释放不掉。(且持续时间已经超过1天)是否参数有问题,还请帮忙! 谢谢
你用apache做集群分发用?
如果没有加解密的需要,
可以把ajp协议改成http协议,试试看。
什么线程不断增加?
不会是jboss的 ,是你工程里面的吧