Hi!

I'm periodically getting unduly high (100%) CPU usage by the tomcat process on my server. This problems happens intermittently, several times a week. When the server goes into this high CPU it does not come back (and becomes unresponsive to new requests), and the only recourse is to restart the tomcat process.

I'm using Tomcat 7.0.30, with APR and Apache web server, on a Ubuntu 11.10 server with 32g of RAM / 8 CPUs.

I've done several jstack stack traces when this occurs, and what I consistently see, are the connector threads in the RUNNABLE state every time, i.e.:

ajp-apr-8009-Acceptor-0" daemon prio=10 tid=0x00000000010a1000 nid=0x539 runnable [0x00007f9364f8e000]
   java.lang.Thread.State: RUNNABLE
        at org.apache.tomcat.jni.Socket.accept(Native Method)
at org.apache.tomcat.util.net.AprEndpoint$Acceptor.run(AprEndpoint.java:1013)
        at java.lang.Thread.run(Thread.java:722)

"http-apr-8443-Acceptor-0" daemon prio=10 tid=0x000000000109b800 nid=0x535 runnable [0x00007f9365510000]
   java.lang.Thread.State: RUNNABLE
        at org.apache.tomcat.jni.Socket.accept(Native Method)
at org.apache.tomcat.util.net.AprEndpoint$Acceptor.run(AprEndpoint.java:1013)
        at java.lang.Thread.run(Thread.java:722)

"http-apr-8080-Acceptor-0" daemon prio=10 tid=0x00000000015ab000 nid=0x531 runnable [0x00007f9365a92000]
   java.lang.Thread.State: RUNNABLE
        at org.apache.tomcat.jni.Socket.accept(Native Method)
at org.apache.tomcat.util.net.AprEndpoint$Acceptor.run(AprEndpoint.java:1013)
        at java.lang.Thread.run(Thread.java:722)

Other threads are in RUNNBLE too in different cases, but these are the one that are always there when the high CPU occurs. That's why I'm starting to think it has something to do with Tomcat.

Can anyone shed some light on this? My current Connector configurations in server.xml are: <Connector port="8080" protocol="org.apache.coyote.http11.Http11AprProtocol"
               connectionTimeout="20000"
               maxThreads="500" minSpareThreads="10" maxSpareThreads="20"
               redirectPort="8443"
               pollTime="100000" />
...
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol" maxThreads="200" scheme="https" secure="true" SSLEnabled="true"
            SSLCACertificateFile="********"
            SSLCertificateKeyFile="********"
            SSLCertificateFile="*******"
            enableLookups="false" clientAuth="false" sslProtocol="TLS"
            pollTime="100000" />
...
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
acceptCount="100" connectionTimeout="5000" keepAliveTimeout="20000"
           disableUploadTimeout="true" enableLookups="false"
           maxHttpHeaderSize="8192"
           maxSpareThreads="75" maxThreads="150"
           minSpareThreads="25"
           executor="default" />

Thanks a lot!
-Kirill

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

Reply via email to