Apache与JBOSS使用AJP(mod_jk)给出了线程数的峰值

Ash*_*ain 5 java apache jboss multithreading ajp

我们使用Apache和JBOSS来托管我们的应用程序,但是我们发现了一些与mod_jk的线程处理有关的问题.

我们的网站属于流量较低的网站,在我们网站的高峰活动时间内最多有200-300个并发用户.随着流量的增长(不是就并发用户而言,而是就来到我们服务器的累积请求而言),服务器停止长时间处理请求,尽管它没有崩溃,但是在20分钟之前无法提供请求.JBOSS服务器控制台显示350个线程在两个服务器上都忙,尽管有足够的可用内存,超过1-1.5 GB(使用JBOSS的2个服务器为64位,为JBOSS分配4 GB RAM)

为了检查我们使用JBOSS和Apache Web控制台的问题,我们看到线程在S状态下显示的时间长达几分钟,尽管我们的页面需要大约4-5秒才能完成.

我们接受了线程转储,发现线程大多处于WAITING状态,这意味着它们无限期地等待.这些线程不是我们的应用程序类,而是AJP 8009端口.

有人可以帮我这个,因为其他人也可能得到这个问题并以某种方式解决了它.如果需要更多信息,请告诉我.

另外mod_proxy比使用mod_jk更好,或者mod_proxy有一些其他问题,如果我切换到mod__proxy对我来说可能是致命的?

我使用的版本如下:

Apache 2.0.52
JBOSS: 4.2.2
MOD_JK: 1.2.20
JDK: 1.6
Operating System: RHEL 4
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

专家!!!! 我们终于找到了上面提到的配置的解决方法.它是APR的使用,在这里提到:http://community.jboss.org/thread/153737.正如许多人在下面的答案中正确提到的问题,即连接器问题.之前我们通过配置hibernate和增加响应时间来进行临时解决.完整的解决方案是APR.

Nag*_*alf 4

我们也遇到类似的问题。我们仍在研究解决方案,但看起来可以在这里找到很多答案:

http://www.jboss.org/community/wiki/OptimalModjk12Configuration

祝你好运!