I agree; we have reproducible instances where PermGen is not set to our requirements on the Tomcat startup parameters and it will cause a "lockup" every time. Do some JMX monitoring and you may discover a memory spike that's killing Tomcat.
Bill -----Original Message----- From: Jeff MAURY [mailto:jeffma...@gmail.com] Sent: September-27-2012 2:01 PM To: Tomcat Users List Subject: Re: high CPU usage on tomcat 7 This is probably due to out of memory, I have the same problem on my ubuntu ci machine Did you monitor your tomcat with jmx ? Jeff Le 27 sept. 2012 17:39, "Kirill Kireyev" <kir...@instagrok.com> a écrit : > 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-unsubscribe@tomcat.**apache.org<users-unsubscribe@tomcat.apache. > org> For additional commands, e-mail: users-h...@tomcat.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org