Hi everyone. I'm running Tomcat 5.0.30 + Apache 2.2.3 on a SuSE EL 10. After a few days running, the CPU load increases, until Tomcat is eating 99% of it, and I need to restart. The last time this happened, I executed jstack on the Tomcat VM, and I saw most of threads stacks are like this:

##############################
Thread 26701: (state = IN_NATIVE)
- java.net.SocketInputStream.socketRead0(java.io.FileDescriptor, byte[], int, int, int) @bci=0 (Compiled frame; information may be imprecise) - java.net.SocketInputStream.read(byte[], int, int) @bci=84, line=129 (Compiled frame)
- java.io.BufferedInputStream.fill() @bci=175, line=218 (Compiled frame)
- java.io.BufferedInputStream.read1(byte[], int, int) @bci=44, line=256 (Compiled frame) - java.io.BufferedInputStream.read(byte[], int, int) @bci=49, line=313 (Compiled frame) - org.apache.jk.common.ChannelSocket.read(org.apache.jk.core.MsgContext, byte[], int, int) @bci=32, line=598 (Compiled frame) - org.apache.jk.common.ChannelSocket.receive(org.apache.jk.core.Msg, org.apache.jk.core.MsgContext) @bci=38, line=535 (Compiled frame) - org.apache.jk.common.ChannelSocket.processConnection(org.apache.jk.core.MsgContext) @bci=28, line=663 (Compiled frame) - org.apache.jk.common.SocketConnection.runIt(java.lang.Object[]) @bci=8, line=866 (Interpreted frame) - org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run() @bci=167, line=684 (Interpreted frame)
- java.lang.Thread.run() @bci=11, line=595 (Interpreted frame)
##############################

This makes me think there is some issues with Apache - Tomcat connection or maybe some SO configuration, because the number of requests is not that high.

This is the configuration of the AJP connector on server.xml:

##############################
<Connector port="8080"
              maxThreads="10" minSpareThreads="1" maxSpareThreads="1"
              enableLookups="false" acceptCount="100"
              debug="0"
              disableUploadTimeout="true" />
##############################

And the forwarding in Apache is done through mod_proxy_ajp, like this:

##############################
ProxyPass         /frontdipuleon ajp://localhost:8009/myapp
ProxyPassReverse  /frontdipuleon ajp://localhost:8009/myapp
##############################

Any idea on what can be wrong? The only thing I tried now is setting a connectionTimeout on the AJP connector, but I think this wouldn't tell me the real cause of these problems. What else should I check?

Thanks in advance.



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to