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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to