Siebel CRM Performance Tuning Guide Siebel 2018 E24801-01 |
|
Previous |
Next |
View PDF |
Optionally, you can configure your Siebel Application Object Manager components to use thread pooling. Enabling Siebel Application Object Manager thread pooling as described in this topic both pools and multiplexes (shares) multiple tasks across threads.
Using Siebel Application Object Manager thread pooling can improve performance and scalability on multiple-processor computers that are under heavy load; for example, computers using eight or more processors that are running at more than 75% capacity.
Note: Siebel Application Object Manager thread pooling is not recommended for smaller server computers or for computers that run under a relatively lower capacity. |
The pool size per multithreaded process for a Siebel Application Object Manager is determined by the combined settings of the parameters UseThreadPool
, ThreadAffinity
, MinPoolThreads
, and MaxPoolThreads
.
Siebel Application Object Manager thread pooling reduces some of the system resource usage devoted to creating and closing session threads, as users log in and log out or are timed out. As when you are not using thread pooling, session threads are created as needed as session requests demand. However, instead of being closed when a session terminates, they are released to a pool, where they become available for use by a subsequent session.
When ThreadAffinity
is FALSE
(the default), threads are multiplexed, as can be done with certain types of database connections or SISNAPI connections. At any given time, each thread can be dedicated to one or more user session (task).
Note: Using thread pooling introduces its own overhead, such as in task context-switching. For this reason, it is strongly recommended not to try to pool threads without also multiplexing them. That is, do not set bothUseThreadPool and ThreadAffinity to TRUE . |
To use thread pooling, you set the following parameters on the Siebel Application Object Manager:
UseThreadPool
equals TRUE
(default is FALSE
)
ThreadAffinity
equals FALSE
(default is FALSE
)
MinPoolThreads
equals min_number_threads_in_pool (default is 0), where min_number_threads_in_pool represents the minimum number of threads in the Siebel Application Object Manager thread pool.
MaxPoolThreads
equals MinPoolThreads
(default is 0)
Note: You must specify a value forMaxPoolThreads that is equal to or greater than the value of MinPoolThreads . |
To determine an appropriate value for MinPoolThreads
and MaxPoolThreads
, start slowly, monitor system performance, then introduce more multiplexing, as appropriate for your deployment. For example, start with a formula like this (based on two tasks per thread):
MinPoolThreads = MaxPoolThreads = (MaxTasks/MaxMTServers) divided by 2
Subsequently, you can increase this to five tasks per thread, using this formula:
MinPoolThreads = MaxPoolThreads = (MaxTasks/MaxMTServers) divided by 5
For example, if MaxTasks
equals 525, and MaxMTServers
equals 5, this would be:
MinPoolThreads = MaxPoolThreads = (525 divided by 5) divided by 5 = 105 divided by 5 = 21
Or, if MaxTasks
equals 725, and MaxMTServers
equals 5, this would be:
MinPoolThreads = MaxPoolThreads = (725 divided by 5) divided by 5 = 145 divided by 5 = 29
Note: Adjust values for think time, as necessary. If you cut your think time value in half, then double the number of threads in the pool. |