Siebel Performance Tuning Guide > Tuning Siebel Application Object Manager > Guidelines for Siebel Application Object Manager Tuning >

Tuning Siebel Application Object Manager Components for CPU and Memory Utilization


This topic is part of Guidelines for Siebel Application Object Manager Tuning. It provides background information and guidelines for tuning your Siebel Application Object Manager components, particularly for setting values for the parameters MaxTasks, MaxMTServers, and MinMTServers.

Settings for these parameters determine how well the system performs under specific user load and operations. Parameter settings provide a means of controlling the server capacity through the Siebel Server infrastructure, and directly impact the overall capacity for each server.

How you set the MaxTasks, MaxMTServers, and MinMTServers parameters is a direct function of the factors described in Performance Factors for Siebel Application Object Manager Deployments, which determine the true capacity of the server.

The art of tuning Siebel Application Object Manager components is to come up with the right parameter settings that allow the server computers to host the largest number of users (scalability) with minimal impact on user response time (performance).

About MaxTasks, MaxMTServers, and MinMTServers

The Siebel Application Object Manager parameters MaxTasks, MaxMTServers, and MinMTServers are described below. You configure these parameters using Siebel Server Manager, which is described in detail in Siebel System Administration Guide.

For background information about multithreaded processes, threads, and related concepts, see Siebel Application Object Manager Infrastructure.

  • MaxTasks (Maximum Tasks). Specifies the total number of tasks (threads) that can run concurrently on this Siebel Application Object Manager, for this Siebel Server. Beyond this number, no more tasks can be started to handle additional requests.
  • MaxMTServers (Maximum MT Servers). Specifies the maximum number of multithreaded processes that can run concurrently on this Siebel Application Object Manager. Beyond this number, no more multithreaded processes can be started to handle additional requests.
  • MinMTServers (Minimum MT Servers). Specifies the default minimum number of multithreaded processes that will start on this Siebel Application Object Manager when the parent process is started. The parent process can be started either explicitly (using Siebel Server Manager) or automatically (if the Siebel Server is started when the component state was last set to Running). Setting MinMTServers to 0 effectively disables the Siebel Application Object Manager component.

As more users log in, new tasks start to handle these sessions, and new multithreaded processes are started to support the additional tasks. The tasks and processes are added according to the Siebel Application Object Manager load-balancing behavior, up to the maximum number of tasks and maximum number of multithreaded processes. For details, see Effect of Siebel Application Object Manager Parameter Settings.

NOTE:  MaxTasks, MaxMTServers, and MinMTServers are generic parameters that apply to many different Siebel Server components. However, the specific behavior described in this chapter applies to Siebel Application Object Manager components. For more information, see Siebel System Administration Guide.

These parameters relate to one another in the following ways:

  • MaxMTServers and MinMTServers are typically set to the same value. Doing this avoids any performance penalty for a user whose login causes a new multithreaded process to start. MaxMTServers must be equal to or greater than MinMTServers.

    Starting all multithreaded processes up front when the parent process is started is generally acceptable. The memory overhead for running a multithreaded process itself, apart from the overhead of its threads, is minimal.

  • The ratio MaxTasks/MaxMTServers (MaxTasks divided by MaxMTServers) determines the maximum number of threads (tasks) that can run concurrently on a given multithreaded process. For more information, see the discussion of think time under Performance Factors for Siebel Application Object Manager Deployments.

Effect of Siebel Application Object Manager Parameter Settings

The following information illustrates how a Siebel Application Object Manager behaves given particular example settings for the MaxTasks, MaxMTServers, and MinMTServers parameters. More realistic examples can be found in Formulas for Calculating Siebel Application Object Manager Parameter Values.

For example, if MaxTasks = 500, and MaxMTServers = 5, then MaxTasks divided by MaxMTServers = 100. This means that, at most, 100 threads (tasks) can run in a multithreaded process on this Siebel Application Object Manager.

Typically, MinMTServers would be set the same as MaxMTServers. However, in this example, assume MinMTServers = 4. In this case, four multithreaded processes start by default, which can handle a total of 400 concurrent threads.

As users start the application on the server, the number of concurrent threads rises, and the following occurs:

  • As the number of concurrent threads rises, but remains below 400, these threads are distributed among the four multithreaded processes that started by default for this Siebel Application Object Manager. This is a form of load balancing internal to the Siebel Application Object Manager component.
  • If the number of concurrent threads reaches 400, and a new request is received, then a fifth multithreaded process starts for this Siebel Application Object Manager. The Siebel Application Object Manager now distributes threads among five multithreaded processes for this Siebel Application Object Manager.
  • If the Siebel Application Object Manager reaches 500 concurrent threads, then no more client session requests can be handled, because the existing multithreaded processes can start no more threads, and the Siebel Application Object Manager can start no more multithreaded processes. The Siebel Application Object Manager can be said to be "maxed out."

If Siebel Application Object Manager loads fall back, then as users log out or session timeouts are enforced, then threads are freed up. In some cases, a multithreaded process whose threads have completed might also time out and stop running; this can happen only when MaxMTServers is greater than MinMTServers.

Guidelines for Configuring Siebel Application Object Manager Parameters

The following information provides formulas and guidelines for setting the MaxTasks, MaxMTServers, and MinMTServers parameters for your Siebel Application Object Manager components.

NOTE:  All elements in the two formulas shown in Formulas for Calculating Siebel Application Object Manager Parameter Values vary according to your deployment. The number of concurrent users a Siebel Application Object Manager can support depends on factors such as the number of processors, session timeout settings, and the average think time.

Typically, the Siebel Application Object Manager is the only component using significant resources on the Siebel Server computer. If you run multiple server components, or run non-Siebel modules, then a Siebel Application Object Manager on this computer might support fewer concurrent threads.

Follow these general steps to determine how to set these parameter values:

  • Determine the total number of concurrent users, based on the average think time and other factors discussed earlier.
  • Determine the number of concurrent users that must be supported on a given Siebel Server computer running Siebel Application Object Manager. In the formulas outlined below, this is the target number of users plus the number of anonymous browser users, where applicable.
  • Determine how many Siebel Server computers are needed to support your concurrent users. This is typically done by Oracle's Application Expert Services or by platform vendors. Contact your Oracle sales representative for Oracle Advanced Customer Services to request assistance from Oracle's Application Expert Services.

    NOTE:  Because each customer application implementation is unique, customers are encouraged to engage Oracle's Application Expert Services for a detailed sizing review to best assess the hardware needs to support their deployment. Application Expert Services has experience from thousands of implementations and works closely with Oracle's Performance and Scalability team to provide sizing guidance.

  • Plug your values into the formulas below, then adjust the values to meet any additional criteria. In particular:
    • If your calculated value for MaxMTServers is not an integer, then round up the value to the nearest integer.
    • After you adjust the value of MaxMTServers, if your calculated ratio for MaxTasks divided by MaxMTServers is not an integer, then round up the value of MaxTasks until this ratio is an integer.
  • Test your initial parameter settings, such as to gauge the actual number of anonymous browser users required, then adjust settings further as necessary.

Formulas for Calculating Siebel Application Object Manager Parameter Values

Use the formulas below for calculating parameter values for your Siebel Application Object Manager components:

  • MaxTasks = target_number_of_users plus anon_browser_users
  • MaxMTServers = (target_number_of_users plus anon_browser_users) divided by 100
  • MinMTServers = MaxMTServers

As necessary, after making your initial calculations, round up MaxMTServers to the nearest integer, calculate the remainder (X) of MaxTasks divided by MaxMTServers, then increment MaxTasks by adding (MaxMTServers minus X). You do this to make sure that the ratio of MaxTasks divided by MaxMTServers is an integer.

NOTE:  The figure of 100 in the MaxMTServers formula represents the ratio of concurrent tasks per multithreaded process. The value of 100 is a rule of thumb only.

The following descriptions apply to the variables used in the formulas:

  • target_number_of_users is the maximum number of concurrent user sessions your Siebel Application Object Manager will support (for users who are logged into the application).

    The maximum number of concurrent users is limited by the value of the MaxTasks parameter for the Siebel Application Object Manager, by the number of multithreaded processes you are running (determined by MaxMTServers and MinMTServers), and, effectively, by your hardware resources.

  • anon_browser_users is the number of sessions on the Siebel Application Object Manager dedicated to anonymous browser users (threads that support users who do not log in).
    • For high interactivity applications (typically, employee applications like Siebel Call Center), anonymous browser users are not supported, so this is not a factor.
    • For standard interactivity applications (typically, customer applications like Siebel eService), anonymous browser users can be approximately 25% of the target number of users.
  • 100 is the approximate maximum number of concurrent threads each multithreaded process on the Siebel Application Object Manager can support. The number 100 is a rule of thumb. Use the number that is appropriate for your deployment.

    NOTE:  A ratio of 100 for threads per multithreaded process works for most Siebel Application Object Manager usage scenarios. However, if your deployment involves a shorter think time than 30 seconds, or a heavier than average load per thread, then each multithreaded process will support fewer concurrent threads. Conversely, a longer think time or a lighter average load will support more concurrent threads. For more information about how the ratio of threads per multithreaded process relates to think time, see Performance Factors for Siebel Application Object Manager Deployments.

Example Settings for Siebel Application Object Manager Parameters

Along with other factors such as think time, the calculation of MaxTasks, MaxMTServers, and MinMTServers depends on your assumptions for target_number_of_users and anon_browser_users, For more information about these parameters, see Formulas for Calculating Siebel Application Object Manager Parameter Values. Example settings follow for Siebel Call Center and Siebel eService.

Example Settings for Siebel Call Center

For Siebel Call Center, assume (for example) a think time of 30 seconds, and assume that target_number_of_users = 500. For this application, anon_browser_users is not a factor. Your parameter values would be:

MaxTasks = 500

MaxMTServers = 500 divided by 100 = 5

MinMTServers = MaxMTServers = 5

Example Settings for Siebel eService

For Siebel eService, assume (for example) a think time of 30 seconds, and assume that target_number_of_users = 500. Depending on your implementation, anon_browser_users might be about 25% of target_number_of_users (or 125). Your preliminary parameter values would be:

MaxTasks = (500 plus 125) = 625

MaxMTServers = (500 plus 125) divided by 100 = 6.25 = 7 (round up)

MinMTServers = MaxMTServers = 7

Adjust the value of MaxTasks. The variable X = the remainder of (625 divided by 7) = 2. Increment MaxTasks by (MaxMTServers minus X): 625 plus (7 minus 2) = 625 plus 5 = 630. Therefore, the final calculations for parameter values would be:

MaxTasks = 630

MaxMTServers = MinMTServers =7

Siebel Performance Tuning Guide Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Legal Notices.