9 Replies Latest reply on Jan 17, 2013 2:24 AM by hypheng

    JBoss http thread block reading in SPECjEnterprise2010

    hypheng

      I got a problem when benching SPECjEnterprise2010.

      The http threads in the thread pool all waiting for http input.

      tack trace:

      java.net.SocketInputStream.socketRead0(Native Method)

      java.net.SocketInputStream.read(SocketInputStream.java:146)

      org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:731)

      org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:368)

      org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:838)

      org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:679)

      org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:519)

      java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)

      java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)

      java.lang.Thread.run(Thread.java:679)

      org.jboss.threads.JBossThread.run(JBossThread.java:122)

       

      The executor was idle waiting while thousands of requests were not served, queued and never served in the end.

      I don't know which configuration caused this problem.

      My configuration about web is:

              <subsystem xmlns="urn:jboss:domain:threads:1.1">

                  <unbounded-queue-thread-pool name="JBossWeb">

                      <max-threads count="200"/>

                      <keepalive-time time="10" unit="second"/>

                  </unbounded-queue-thread-pool>

              </subsystem>

              <subsystem xmlns="urn:jboss:domain:web:1.2" default-virtual-server="default-host" native="true">

                  <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http" executor="JBossWeb" max-connections="3000"/>

                  <virtual-server name="default-host" enable-welcome-root="true">

                      <alias name="localhost"/>

                      <alias name="example.com"/>

                  </virtual-server>

              </subsystem>

       

      If I use the defaut executor, there will be thousands of threads created.

      Most of the threads does nothing but waiting i/o.

       

      Could anyone tell me what can lead to this problem?