tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 43002] - NIO connector performance issue in 6.0.13
Date Thu, 02 Aug 2007 23:48:10 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=43002>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=43002





------- Additional Comments From guy.molinari@dig.com  2007-08-02 16:48 -------
Update.    I wrote a simple response generator servlet and re-ran the tests.   
Now performance on 6.0.13 is significantly *FASTER*.  However, I'm seeing a 
fair number of HTTPClient errors from Grinder as well as consistent buffer 
overflow exceptions.  This leads me to believe that the bottleneck has now 
shifted to the application code.

I've attached the test servlet.   Here are the stack traces:

===========================================================================
Java exception whilst invoking test runner
	File "/apps/grinder-3.0/projects/TeaBenchmark/smallest-servlet-
400rps.py", line 40, in __call__
Caused by: java.io.IOException: HTTPClient.ParseException: Didn't find valid 
chunk length: ................
	at HTTPClient.StreamDemultiplexor.read(StreamDemultiplexor.java:372)
	at HTTPClient.RespInputStream.read(RespInputStream.java:155)
	at HTTPClient.HTTPResponse.readResponseData(HTTPResponse.java:1011)
	at HTTPClient.HTTPResponse.getData(HTTPResponse.java:515)
	at net.grinder.plugin.http.HTTPRequest$AbstractRequest.getHTTPResponse
(HTTPRequest.java:888)
	at net.grinder.plugin.http.HTTPRequest.GET(HTTPRequest.java:385)
	at net.grinder.plugin.http.HTTPRequest.GET(HTTPRequest.java:360)
	at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)

================================================================
TOMCAT LOG STACK TRACE FOLLOWS:
================================================================
2007-08-02 15:44:04,453 [http-8080-exec-17] ERROR 
org.apache.catalina.connector.CoyoteAdapter - An exception or error occurred in 
the container during the request processing
java.nio.BufferOverflowException
	at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:311)
	at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:290)
	at sun.nio.ch.IOUtil.write(IOUtil.java:70)
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334)
	at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:111)
	at org.apache.tomcat.util.net.NioBlockingSelector.write
(NioBlockingSelector.java:57)
	at org.apache.tomcat.util.net.NioSelectorPool.write
(NioSelectorPool.java:135)
	at org.apache.tomcat.util.net.NioSelectorPool.write
(NioSelectorPool.java:130)
	at org.apache.coyote.http11.InternalNioOutputBuffer.writeToSocket
(InternalNioOutputBuffer.java:433)
	at org.apache.coyote.http11.InternalNioOutputBuffer.flushBuffer
(InternalNioOutputBuffer.java:761)
	at org.apache.coyote.http11.InternalNioOutputBuffer.endRequest
(InternalNioOutputBuffer.java:398)
	at org.apache.coyote.http11.Http11NioProcessor.action
(Http11NioProcessor.java:1089)
	at org.apache.coyote.Response.action(Response.java:183)
	at org.apache.coyote.Response.finish(Response.java:305)
	at org.apache.catalina.connector.OutputBuffer.close
(OutputBuffer.java:276)
	at org.apache.catalina.connector.Response.finishResponse
(Response.java:486)
	at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:285)
	at org.apache.coyote.http11.Http11NioProcessor.process
(Http11NioProcessor.java:896)
	at 
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process
(Http11NioProtocol.java:705)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run
(NioEndpoint.java:2049)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)
2007-08-02 15:45:24,687 [http-8080-exec-11] ERROR 
org.apache.catalina.connector.CoyoteAdapter - An exception or error occurred in 
the container during the request processing
java.nio.BufferOverflowException
	at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:311)
	at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:290)
	at sun.nio.ch.IOUtil.write(IOUtil.java:70)
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334)
	at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:111)
	at org.apache.tomcat.util.net.NioBlockingSelector.write
(NioBlockingSelector.java:57)
	at org.apache.tomcat.util.net.NioSelectorPool.write
(NioSelectorPool.java:135)
	at org.apache.tomcat.util.net.NioSelectorPool.write
(NioSelectorPool.java:130)
	at org.apache.coyote.http11.InternalNioOutputBuffer.writeToSocket
(InternalNioOutputBuffer.java:433)
	at org.apache.coyote.http11.InternalNioOutputBuffer.flushBuffer
(InternalNioOutputBuffer.java:761)
	at org.apache.coyote.http11.InternalNioOutputBuffer.endRequest
(InternalNioOutputBuffer.java:398)
	at org.apache.coyote.http11.Http11NioProcessor.action
(Http11NioProcessor.java:1089)
	at org.apache.coyote.Response.action(Response.java:183)
	at org.apache.coyote.Response.finish(Response.java:305)
	at org.apache.catalina.connector.OutputBuffer.close
(OutputBuffer.java:276)
	at org.apache.catalina.connector.Response.finishResponse
(Response.java:486)
	at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:285)
	at org.apache.coyote.http11.Http11NioProcessor.process
(Http11NioProcessor.java:896)
	at 
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process
(Http11NioProtocol.java:705)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run
(NioEndpoint.java:2049)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)
2007-08-02 15:49:42,468 [http-8080-exec-8] ERROR 
org.apache.catalina.connector.CoyoteAdapter - An exception or error occurred in 
the container during the request processing
java.nio.BufferOverflowException
	at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:311)
	at java.nio.DirectByteBuffer.put(DirectByteBuffer.java:290)
	at sun.nio.ch.IOUtil.write(IOUtil.java:70)
	at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:334)
	at org.apache.tomcat.util.net.NioChannel.write(NioChannel.java:111)
	at org.apache.tomcat.util.net.NioBlockingSelector.write
(NioBlockingSelector.java:57)
	at org.apache.tomcat.util.net.NioSelectorPool.write
(NioSelectorPool.java:135)
	at org.apache.tomcat.util.net.NioSelectorPool.write
(NioSelectorPool.java:130)
	at org.apache.coyote.http11.InternalNioOutputBuffer.writeToSocket
(InternalNioOutputBuffer.java:433)
	at org.apache.coyote.http11.InternalNioOutputBuffer.flushBuffer
(InternalNioOutputBuffer.java:761)
	at org.apache.coyote.http11.InternalNioOutputBuffer.endRequest
(InternalNioOutputBuffer.java:398)
	at org.apache.coyote.http11.Http11NioProcessor.action
(Http11NioProcessor.java:1089)
	at org.apache.coyote.Response.action(Response.java:183)
	at org.apache.coyote.Response.finish(Response.java:305)
	at org.apache.catalina.connector.OutputBuffer.close
(OutputBuffer.java:276)
	at org.apache.catalina.connector.Response.finishResponse
(Response.java:486)
	at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:285)
	at org.apache.coyote.http11.Http11NioProcessor.process
(Http11NioProcessor.java:896)
	at 
org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process
(Http11NioProtocol.java:705)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run
(NioEndpoint.java:2049)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask
(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run
(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:619)

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

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message