WildFly JBossWeb Tomcat Connector Internal ThreadPool Statistics: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 28: Line 28:


=JMX Metrics=
=JMX Metrics=
====maxThreads====
The thread count upper limit. No more than 'maxThreads' Tomcat connector threads can be created, meaning that no more than 'maxThreads' requests can be handled in parallel.


====currentThreadCount====
====currentThreadCount====
The number of connector threads in existence at a certain moment in time. Includes threads actively doing work (see '[[#currentThreadsBusy|currentThreadsBusy]]' below) and idle threads. It is the value of the 'curThreads' internal variable.
====currentThreadsBusy====
====currentThreadsBusy====
The number of AJP threads doing work at a certain moment in time. It is calculated based on formula:
<pre>
curThreads - workers.size()
</pre>

Revision as of 19:01, 10 May 2017

Internal

Relevance

  • EAP 6.4.10

Overview

Tomcat connector internal thread pool JMX statistics are not exposed by default. In order to expose them, the JBoss instance must start with "org.apache.tomcat.util.ENABLE_MODELER" system property set to "true". This can be done in the .conf file corresponding to the mode JBoss is run in (standalone.conf or in domain.conf):

JAVA_OPTS="${JAVA_OPTS} -Dorg.apache.tomcat.util.ENABLE_MODELER=true"

Alternatively, it can be specified in the <system-properties> section of the configuration file:

<system-properties>
    ...
    <property name="org.apache.tomcat.util.ENABLE_MODELER" value="true"/>
    ...
</system-properties>

The system property will determine the Tomcat Http11Protocol or class AjpProtocol to expose the corresponding JIoEndpoit in JMX as "jboss.web:name=<protocol>-<bind-address>-<port>,type=ThreadPool". Example: "jboss.web:name=ajp-127.0.0.1-8009,type=ThreadPool".

JMX Metrics

maxThreads

The thread count upper limit. No more than 'maxThreads' Tomcat connector threads can be created, meaning that no more than 'maxThreads' requests can be handled in parallel.

currentThreadCount

The number of connector threads in existence at a certain moment in time. Includes threads actively doing work (see 'currentThreadsBusy' below) and idle threads. It is the value of the 'curThreads' internal variable.

currentThreadsBusy

The number of AJP threads doing work at a certain moment in time. It is calculated based on formula:

curThreads - workers.size()