tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peter <thenephili...@yahoo.com>
Subject Tomcat 6 NIO consumes all CPU until restarted
Date Sat, 27 Oct 2007 17:58:34 GMT
Hi

We are having a problem with Tomcat 6 using the NIO (running on linux with Java HotSpot(TM)
64-Bit Server VM (build 1.5.0_12-b04, mixed mode) that it consumes all CPU after a few hours
in production, prior to that we ran Tomcat 6 with AJP and Apache 2.0 with mod_jk in front
of it for over a month without any problems. While it is consuming all CPU it still serves
requests but obviously much slower. During the last "episode" I collected some thread dumps
over the period of 10 - 15 minutes and found 3 runnable threads that were present in all the
dumps and were doing the exact same thing:

"http-8080-exec-41" daemon prio=1 tid=0x0000002ae320dad0 nid=0x12ac runnable [0x0000000045c18000..0x0000000045c18c10]
        at org.apache.coyote.http11.InternalNioOutputBuffer.access$000(InternalNioOutputBuffer.java:44)
        at org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:794)
        at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
        at org.apache.coyote.http11.filters.GzipOutputFilter$FakeOutputStream.write(GzipOutputFilter.java:164)
        at java.util.zip.GZIPOutputStream.finish(GZIPOutputStream.java:95)
--
"http-8080-exec-41" daemon prio=1 tid=0x0000002ae320dad0 nid=0x12ac runnable [0x0000000045c18000..0x0000000045c18c10]
        at org.apache.coyote.http11.InternalNioOutputBuffer.access$000(InternalNioOutputBuffer.java:44)
        at org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:794)
        at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
        at org.apache.coyote.http11.filters.GzipOutputFilter$FakeOutputStream.write(GzipOutputFilter.java:164)
        at java.util.zip.GZIPOutputStream.finish(GZIPOutputStream.java:95)
--
"http-8080-exec-41" daemon prio=1 tid=0x0000002ae320dad0 nid=0x12ac runnable [0x0000000045c18000..0x0000000045c18c10]
        at org.apache.coyote.http11.InternalNioOutputBuffer.access$000(InternalNioOutputBuffer.java:44)
        at org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:794)
        at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
        at org.apache.coyote.http11.filters.GzipOutputFilter$FakeOutputStream.write(GzipOutputFilter.java:164)
        at java.util.zip.GZIPOutputStream.finish(GZIPOutputStream.java:95)

"http-8080-exec-29" daemon prio=1 tid=0x0000002ae4152d10 nid=0x6e3a runnable [0x0000000043af7000..0x0000000043af7b90]
        at org.apache.coyote.http11.InternalNioOutputBuffer.access$000(InternalNioOutputBuffer.java:44)
        at org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:794)
        at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
        at org.apache.coyote.http11.filters.GzipOutputFilter$FakeOutputStream.write(GzipOutputFilter.java:164)
        at java.util.zip.GZIPOutputStream.finish(GZIPOutputStream.java:95)

"http-8080-exec-16" daemon prio=1 tid=0x0000002ae39bf030 nid=0x18d1 runnable [0x0000000043cf9000..0x0000000043cf9e10]
        at org.apache.coyote.http11.InternalNioOutputBuffer.access$000(InternalNioOutputBuffer.java:44)
        at org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:794)
        at org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
        at org.apache.coyote.http11.filters.GzipOutputFilter$FakeOutputStream.write(GzipOutputFilter.java:164)
        at java.util.zip.GZIPOutputStream.finish(GZIPOutputStream.java:95)

etc. Here is the connector configurations:

    <Connector port="8080"
               connectionTimeout="20000"
               maxThreads="300"
               enableLookups="false"
                    compression="5000"
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               redirectPort="8443"
               keepAliveTimeout="5000"
               maxKeepAliveRequests="1000" />

    <Connector port="8443"
                protocol="org.apache.coyote.http11.Http11AprProtocol"
                maxThreads="300"
                minSpareThreads="25"
                maxSpareThreads="75"
                enableLookups="false"
                disableUploadTimeout="true"
                acceptCount="100"
                scheme="https"
                secure="true"
                SSLEnabled="true"
                SSLCertificateFile="xyz.com.crt"
                SSLCertificateKeyFile="xyz.com.key"
                SSLPassword="" />


The server goes into this state very regularly, this configuration has been in service for
3 days and it's goes into this state every 2 - 5 hours until restarted. 

Has anyone experience any similar behaviour? Any ideas or suggestions?

Thanks
Peter



---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Mime
View raw message