eG Monitoring
 

Measures reported by UtilityExecutorTest

Since Tomcat version 9.0.14 an utility executor has been introduced. You can add this as a scheduled executor that can be used to process periodic utility tasks. The utility threads are non daemon by default.

To understand the usage of these utility threads and to figure out if the utility thread pool is configured right to support the utility tasks, administrators can periodically run the UtilityExecutorTest test.

Outputs of the test:One set of results for the utility thread pool configured on the Tomcat server being monitored.

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Active_count Indicates the number of threads in the utility thread pool that are currently processing a utility task. Number

If the value of this measure is equal to the value of the Pool_size measure, it implies all the threads in the pool have been utilized. Without spare threads, Tomcat will not be able to service subsequent utility tasks. To avoid this, you may want to consider increasing the pool size.

Completed_task_count Indicates the number of tasks that were recently completed by the threads in the utility thread pool. Number

 

Core_pool_size Reports the core size of the utility thread pool. Number

 

Largest_pool_size Indicates the high watermark of threads in the utility thread pool. Number

 

Pool_size Indicates the number of threads in the utility thread pool currently. Number

If the value of this measure is equal to the value of the Active_count measure, it implies that no threads are available in the pool for processing subsequent utility tasks. To pre-empt this occurrence, you may want to increase the pool size.

Task_count Indicates the number of tasks currently being processed by the threads in the pool. Number

Compare the value of this measure with the No of threads in pool measure to ascertain whether/not the pool is sized with enough threads to service the utility tasks at hand. If not, you may want to increase the pool size.

Perc_pool_usage Indicates the percentage of the pool size that is actively engaged in processing utility tasks. Percent

A value close to 100% indicates that almost all threads in the utility pool are busy processing tasks. This means that shortly, there will be no threads in the pool to process subsequent tasks. To avoid a t thread contention, you may want to increase the pool size.