https://issues.apache.org/bugzilla/show_bug.cgi?id=44989

           Summary: using NIO connector with compression consumes all CPU
           Product: Tomcat 6
           Version: 6.0.16
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: critical
          Priority: P1
         Component: Connectors
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Created an attachment (id=21957)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=21957)
JConsole overview

Hi, i migrated from version 6.0.14 to version 6.0.16, and configured tomcat to
use NIO connector and compression on, with that i'm getting a thread name
'http-exec-80-2' that consumes 49-50% of CPU, and the thread
'http-80-ClientPoller' that consumes 46-48% of CPU, with this i have a jvm that
consumes 100% o my CPU.

uname -a output: 
Linux 2.6.23.1-10.fc7 #1 SMP Fri Oct 19 15:39:08 EDT 2007 i686 i686 i386
GNU/Linux 

java -version output:
java version "1.5.0_15"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_15-b04)
Java HotSpot(TM) Server VM (build 1.5.0_15-b04, mixed mode)

http-exec-80-2 stack:
org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:806)
org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
org.apache.coyote.http11.filters.GzipOutputFilter$FakeOutputStream.write(GzipOutputFilter.java:164)
java.util.zip.GZIPOutputStream.finish(GZIPOutputStream.java:95)
org.apache.coyote.http11.filters.GzipOutputFilter.end(GzipOutputFilter.java:122)
org.apache.coyote.http11.InternalNioOutputBuffer.endRequest(InternalNioOutputBuffer.java:390)
org.apache.coyote.http11.Http11NioProcessor.action(Http11NioProcessor.java:1079)
org.apache.coyote.Response.action(Response.java:183)
org.apache.coyote.Response.finish(Response.java:305)
org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:276)
org.apache.catalina.connector.Response.finishResponse(Response.java:492)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:310)
org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:879)
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:719)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2080)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
java.lang.Thread.run(Thread.java:595)

sometimes the stack of http-exec-80-2 is just changing from this to above:
org.apache.coyote.http11.InternalNioOutputBuffer.addToBB(InternalNioOutputBuffer.java:620)
org.apache.coyote.http11.InternalNioOutputBuffer.access$000(InternalNioOutputBuffer.java:46)
org.apache.coyote.http11.InternalNioOutputBuffer$SocketOutputBuffer.doWrite(InternalNioOutputBuffer.java:803)
org.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:126)
org.apache.coyote.http11.filters.GzipOutputFilter$FakeOutputStream.write(GzipOutputFilter.java:164)
java.util.zip.GZIPOutputStream.finish(GZIPOutputStream.java:95)
org.apache.coyote.http11.filters.GzipOutputFilter.end(GzipOutputFilter.java:122)
org.apache.coyote.http11.InternalNioOutputBuffer.endRequest(InternalNioOutputBuffer.java:390)
org.apache.coyote.http11.Http11NioProcessor.action(Http11NioProcessor.java:1079)
org.apache.coyote.Response.action(Response.java:183)
org.apache.coyote.Response.finish(Response.java:305)
org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:276)
org.apache.catalina.connector.Response.finishResponse(Response.java:492)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:310)
org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:879)
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:719)
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:2080)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675)
java.lang.Thread.run(Thread.java:595)

http-80-ClientPoller stack:
sun.nio.ch.PollArrayWrapper.poll0(Native Method)
sun.nio.ch.PollArrayWrapper.poll(PollArrayWrapper.java:100)
sun.nio.ch.PollSelectorImpl.doSelect(PollSelectorImpl.java:56)
sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1473)
java.lang.Thread.run(Thread.java:595)

attached are the screenshots of JConsole from where you can see the graphs...


-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to