Thread Manager starts and manages client threads in the Java Virtual Machine. It saves system resources by controlling the number of threads at a particular moment and the way they are started. Thread Manager enables you to reuse threads, which it keeps in a pool. This manager runs on both server and dispatcher nodes of the cluster.
When initializing Thread Manager the following types of structures are created:
Objects registered for execution in a thread are assigned with priorities.
|
Dispatcher |
|
Property |
Description |
Default Value |
|
|
|
InitialThreadCount |
Initial size of thread pool. |
100 |
CurrentThreadCount
|
Current size of thread pool. |
100 |
MinThreadCount |
Minimum size of thread pool. |
50 |
MaxThreadCount |
Maximum size of thread pool. |
200 |
ChangeThreadCountStep |
The step width, which is used to change the size of the thread pool. |
100 |
InitialRQSize |
Initial size of waiting objects queue. |
100 |
MinRQSize |
Minimum size of waiting objects queue. |
100 |
MaxRQSize |
Maximum size of waiting objects queue. |
200 |
ChangeRQSizeStep |
The step at which the size of the queue is changed. |
50 |
CheckForDecreaseTimeout |
Specifies the period between checks performed on Thread Manager to determine if the current number of threads must be decreased to avoid nonworking threads and to release memory. When thread count grows, check time must decrease. |
3 min |
NeededPositiveDecreaseChecks |
Specifies the number of consecutive checks returned as “true,” after which the number of threads is decreased. |
3 |
AlertLogFileName |
Specifies the filename to which alert log messages are written. |
./managers/log /ALERT.log |
NormalLogFileName |
This parameter specifies the filename to which messages with normal priority are written. This file is used by the Log viewer of the system to display the messages. |
DEFAULT.log |
WarningLogFileName |
Specifies the filename to which warning log messages for Thread Manager are written. |
./managers/log
/thread/WARNING.log |
CriticalLogFileName |
Specifies the filename to which critical log messages are written. |
./managers/log
/CRITICAL.log |
ErrorLogFileName |
Specifies the filename to which error log messages are written. |
./managers/log
/ERROR.log |
NoticeLogFileName |
Specifies the filename to which notice log messages for Thread Manager are written. |
./managers/log
/thread/NOTICE.log |
NormalLogLevel |
Specifies the types of log messages that have normal priority. It is a number from 0 to 7 specifying that log messages within [0, NormalLogLevel] are written in the DefaultNormalFile. |
5 |
CriticalLogLevel |
Specifies the types of log messages that have critical priority. It is a number from 0 to 7 specifying that log messages within [CriticalLogLevel,7] are written in the DefaultCriticalFile. |
3 |
EmergencyLogFileName |
Specifies the filename to which emergency log messages are written. |
./managers/log
/EMERGENCY.log |
InfoLogFileName |
Specifies the filename to which info log messages for Thread Manager are written. |
./managers/log
/thread/INFO.log |
DebugLogFileName |
Specifies the filename to which debug log messages for Thread Manager are written. |
./managers/log
/thread/DEBUG.log |
|
Server |
|
Property |
Description |
Default Value |
|
|
|
InitialThreadCount |
Initial size of thread pool. |
40 |
CurrentThreadCount
|
Current size of thread pool. |
40 |
MinThreadCount |
Minimum size of thread pool. |
40 |
MaxThreadCount |
Maximum size of thread pool. |
40 |
ChangeThreadCountStep |
The step at which the size of the thread pool is changed. |
100 |
InitialRQSize |
Initial size of waiting objects queue. |
500 |
MinRQSize |
Minimum size of waiting objects queue. |
100 |
MaxRQSize |
Maximum size of waiting objects queue. |
6000 |
ChangeRQSizeStep |
The step at which the size of the queue is changed. |
100 |
InitialFOQSize
|
This value specifies the initial size of the pool of inner objects. These objects are referred to as reusable objects. |
200 |
MinFOQSize |
Minimum size of the pool with reusable objects. |
100 |
MaxFOQSize |
Maximum size of the pool with reusable objects. |
5000 |
ChangeFOQSizeStep |
The step at which the size of the pool with reusable objects is changed.
|
100 |
CheckForDecreaseTimeout |
Specifies period between checks performed on Thread Manager to determine if the current number of threads must be decreased to avoid nonworking threads and to release memory. When thread count grows, check time must decrease. |
3 min |
NeededPositiveDecreaseChecks |
Specifies the number of consecutive checks returned as “true,” after which the number of threads is decreased. |
3 |
AlertLogFileName |
Specifies the filename to which alert log messages are written. |
./managers/log /ALERT.log |
NormalLogFileName |
This parameter specifies the filename to which messages with normal priority are written. This file is used by the Log viewer of the system to display the messages. |
DEFAULT.log |
WarningLogFileName |
Specifies the filename to which warning log messages for Thread Manager are written. |
./managers/log
/thread/WARNING.log |
CriticalLogFileName |
Specifies the filename to which critical log messages are written. |
./managers/log
/CRITICAL.log |
ErrorLogFileName |
Specifies the filename to which error log messages are written. |
./managers/log
/ERROR.log |
NoticeLogFileName |
Specifies the filename to which notice log messages for Thread Manager are written. |
./managers/log
/thread/NOTICE.log |
NormalLogLevel |
Specifies the types of log messages that have normal priority. It is a number from 0 to 7 specifying that log messages within [0,NormalLogLevel] are written in the DefaultNormalFile. |
5 |
CriticalLogLevel |
Specifies the types of log messages that have critical priority. It is a number from 0 to 7 specifying that log messages within [CriticalLogLevel,7] are written in the DefaultCriticalFile. |
3 |
EmergencyLogFileName |
Specifies the filename to which emergency log messages are written. |
./managers/log
/EMERGENCY.log |
InfoLogFileName |
Specifies the filename to which info log messages for Thread Manager are written. |
./managers/log
/thread/INFO.log |
DebugLogFileName |
Specifies the filename to which debug log messages for Thread Manager are written. |
./managers/log /thread/DEBUG.log |
../cluster/dispatcher/managers/settings/ThreadManager.properties
Thread Manager properties specified in the
Visual Administrator
section can be set from this property file as well.
../cluster/server/managers/settings/ThreadManager.properties
Thread Manager properties specified in the
Visual Administrator
section can be set from this property file as well.
When setting the minimum and maximum number of threads to be started (MinThreadCount and MaxThreadCount properties), the capacity of the operating system used must be considered carefully. There is no point in assigning MaxThreadCount a value greater than the number of threads the operating system allows to be started. Performance may be improved as the size of the queue of waiting objects is increased; however, this must be done only if enough memory resources are available. Do not overload the virtual machine. When check time for the current threads status is below the default value (three minutes) frequent verifications can slow down the execution of system processes.