Jasper
Jasper

Reputation: 8705

Very high number of HTTP Threads in WAIT state

Using Java Visual VM: I can see almost 100 Threads in WAIT state.

In JBoss Server.xml i have:

  <!-- A HTTP/1.1 Connector on port 8080 -->
  <Connector port="8080" address="${jboss.bind.address}"
     maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
     emptySessionPath="true"
     enableLookups="false" redirectPort="8443" acceptCount="100"
     connectionTimeout="20000" disableUploadTimeout="true"/>

I have a ThreadPool in Jboss-Service.xml that looks like:

    <mbean code="org.jboss.util.threadpool.BasicThreadPool"
      name="jboss.system:service=ThreadPool">
      <attribute name="Name">JBoss System Threads</attribute>
      <attribute name="ThreadGroupName">System Threads</attribute>
      <attribute name="KeepAliveTime">60000</attribute>
      <attribute name="MaximumPoolSize">10</attribute>
      <attribute name="MaximumQueueSize">1000</attribute>
      <attribute name="BlockingMode">run</attribute>
   </mbean>

In Thread Dump most of threads are in following state:

   "http-0.0.0.0-8180-97" - Thread t@7296
       java.lang.Thread.State: WAITING
        at java.lang.Object.wait(Native Method)
        - waiting on <23791834> (a org.apache.tomcat.util.net.MasterSlaveWorkerThread)
        at java.lang.Object.wait(Object.java:485)
        at org.apache.tomcat.util.net.MasterSlaveWorkerThread.await(MasterSlaveWorkerThread.java:81)
        at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:107)
        at java.lang.Thread.run(Thread.java:619)

Java Visual VM also lists a very high number for Daemon Threads Live: 176 Daemon: 171

I am using JBoxx 4x

Upvotes: 0

Views: 2811

Answers (1)

Peter Lawrey
Peter Lawrey

Reputation: 533880

When a worker thread is idle, it is usually waiting on an empty queue for some new work.

I suspect these threads are waiting for more work.

Upvotes: 3

Related Questions