Sorry to bump this thread. I'm willing to pay for some assistance if anyone's interested in helping. I'm trying to figure out 2 problems when running my system under a light-moderate load test:
1) why do my comet timeout events not get generated on time (supposed to be every 50 seconds, averaging 56s, with many refused connections skewing the average down, max 85s)? 2) why is tomcat refusing connections under what seems to be a reasonable load? I'm happy to do more legwork on my own -- just looking for some pointers here. Can anyone help me out? Looking at JConsole, 2 items that look suspicious: 1) blocked http-acceptor threads, and 2) block-poller and client-poller threads that show a high number of blocks (see below). Also, the non-comet http requests are returning quickly, averaging ~150ms, so it seems to be only my comet requests that are having issues. Running a load test with 600 total client threads averaging 14 requests/sec. 300 threads making normal http requests, 300 threads making comet requests that wait 50 seconds for a server timeout. Tomcat 6.0.18 on Windows XP. <Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="1000" acceptorThreadCount="5" acceptorThreadPriority="10" pollerThreadCount="5" pollerThreadPriority="10" redirectPort="8443" enableLookups="false" /> after 1/2 hour running: normal http requests: 20000 samples, averaging 150 ms, ~.5% error comet requests: 10000 samples, averaging 56s, ~3.5% error Information from JConsole: CPU avg: 5-10% threads: stable @ ~300 memory: stable @ ~130MB Thread status from JConsole of the http-acceptor, block-poller, and client-poller threads: Name: http-80-Acceptor-0 State: BLOCKED on java.lang.obj...@17a82f1 owned by: http-80-Acceptor-4 Total blocked: 132 Total waited: 0 Stack trace: sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source) org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:1198) java.lang.Thread.run(Unknown Source) ----- Name: http-80-Acceptor-1 State: BLOCKED on java.lang.obj...@17a82f1 owned by: http-80-Acceptor-4 Total blocked: 129 Total waited: 0 Stack trace: sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source) org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:1198) java.lang.Thread.run(Unknown Source) ----- Name: http-80-Acceptor-2 State: BLOCKED on java.lang.obj...@17a82f1 owned by: http-80-Acceptor-4 Total blocked: 122 Total waited: 0 Stack trace: sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source) org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:1198) java.lang.Thread.run(Unknown Source) ----- Name: http-80-Acceptor-3 State: BLOCKED on java.lang.obj...@17a82f1 owned by: http-80-Acceptor-0 Total blocked: 166 Total waited: 0 Stack trace: sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source) org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:1198) java.lang.Thread.run(Unknown Source) ----- Name: http-80-Acceptor-4 State: BLOCKED on java.lang.obj...@17a82f1 owned by: http-80-Acceptor-0 Total blocked: 133 Total waited: 0 Stack trace: sun.nio.ch.ServerSocketChannelImpl.accept(Unknown Source) org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:1198) java.lang.Thread.run(Unknown Source) ----- Name: http-80-ClientPoller State: RUNNABLE Total blocked: 17,950 Total waited: 5 Stack trace: sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source) sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source) sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source) sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source) - locked sun.nio.ch.uti...@f7b8fc - locked java.util.collections$unmodifiable...@195afdb - locked sun.nio.ch.windowsselectori...@c56236 sun.nio.ch.SelectorImpl.select(Unknown Source) org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:1473) java.lang.Thread.run(Unknown Source) ----- Name: NioBlockingSelector.BlockPoller-1 State: RUNNABLE Total blocked: 10,645 Total waited: 0 Stack trace: sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method) sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source) sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source) sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source) sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source) - locked sun.nio.ch.uti...@b2ee9a - locked java.util.collections$unmodifiable...@14eda77 - locked sun.nio.ch.windowsselectori...@1e8bb4c sun.nio.ch.SelectorImpl.select(Unknown Source) org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:305) Thanks for any help, Peter --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org