JRun Threads Test

The JRun server includes a thread pool, wherein each thread in the pool is used to service an incoming request. The size of the thread pool is dynamically increased / decreased depending on the rate of incoming requests. Since a single JRun server may comprise of multiple instances, the JRun Thread test monitors the thread pool usage for each of the server instances. One set of results is reported per instance of a JRun server. In Figure 1, there are two instances of the JRun server. Hence, two sets of results are reported corresponding to the default, App1 instances.

Target of the test : An Allaire JRun Server

Agent deploying the test : An internal agent

Outputs of the test : One set of results for the JRun Server being monitored.

Configurable parameters for the test
Parameter Description

Test Period

How often should the test be executed.

Host

Specify the host name of the server for which the test is to be configured.

Port

The port number on which the host is listening.

HomeDir

The directory in which the JRun server has been installed.

In Windows environments, if the JRun server is installed at D:\program files\allaire\jrun, HomeDir has to be set to D:\progra~1\allaire\jrun.

Measurements made by the test
Measurement Description Measurement Unit Interpretation

Thread utilization

This indicates the percentage of existing threads, which are currently active.

Percent

A value consistently close to 100% is indicative of a bottleneck in the JRun server. In this case, incoming requests may have to wait for threads to be available to process the requests and the user may see an increased delay while accessing the server.

To improve the performance of a JRun server 3.0, consider increasing the jcp.endpoint.main.active.threads property in the local.properties configuration file (residing in the JRUN_HOME_DIR>/servers/servername), so that the server can allocate more threads for processing user requests. 

In case of a JRun server 4.0 modify the activeHandlerThreads attribute of the WebService in the jrun.xml file located in the <JRUN_HOME_DIR>/servers/<SERVER_NAME>/SERVER-INF directory.

If the value of this metric is below 20%, the thread pool size may be set to be too large. Hence, consider reducing the jcp.endpoint.main.active.threads property in local.properties file of the JRun server 3.0.

In case of a JRun server 4.0, modify the activeHandlerThreads attribute of the WebService in the jrun.xml file located in the <JRUN_HOME_DIR>/servers/<SERVER_NAME>/SERVER-INF directory.

Waiting threads

This indicates the number threads that are being queued in the server.

Number

A high value indicates that several threads are getting queued since the server is busy processing other threads. To reduce this number for a JRun server 3.0, you should increase the value of the jcp.endpoint.main.active.threads property in the local.properties configuration file, so that the server's JVM can handle more threads simultaneously. At the same time, care must be taken to ensure that the server does not become less efficient.

In case of a JRun server 4.0, modify the activeHandlerThreads attribute of the WebService in the jrun.xml file located in the <JRUN_HOME_DIR>/servers/<SERVER_NAME>/SERVER-INF directory.

Total threads

This metric indicates the overall number of threads in all states in the server.

Number

This metric must be considered in conjunction with the Thread utilization metric. Where possible ensure that the number of total threads is not set to be much larger than the maximum number of simultaneous requests expected for the server.

Note:

If a new server instance is added to a JRun application server while its being monitored, it will take at least an hour for the new instance to appear in the eG monitor console.