Thursday 1 November 2012

Siebel: Object manager paramater configuration



The Siebel Object Manager is a multithreaded process, which means that one running process can execute multiple, concurrent threads. When an Object Manager is started on a Siebel server, an OM task will automatically be started (with status 'Handling Requests'). When users start to log in, each user login will spawn a new task. These user tasks will remain active until the user logs out. All these tasks will be counted towards the value of the MaxTasks parameter.

Multiple OM processes can be run on each Siebel Server. This multiprocessing and multithreaded programming model provides Siebel software with a very high degree of scalability, as users are constrained only by application server resources in the numbers of processes and threads that can be run to support very high numbers of concurrent users.

Processes and threads are programming terms for things running at the operating system level. At the Siebel Server level, more user-friendly terms are used to express the same concepts. The term Multithreaded Server, or MT Server, refers to an OM process, and the term Server Task refers to a user session being executed by a thread of that process.

As with any high performance system, proper tuning is required to assure optimal operation. The goal is to tune the SOM to efficiently use the database connections, memory, and CPU time while not succumbing to high levels of context switching. There are many parameters to consider when tuning a Siebel OM. Siebel Expert Services provides a Production Readiness review, to make sure that the Siebel application has been tuned correctly. The following case study will provide concepts and examples to educate the Siebel Administrator in tuning their Siebel eBusiness Application.

The first step to consider is the projected number of concurrent users for the Siebel application. In this case study, there are 1000 concurrent users, assuming an average think time of 30 seconds between user operations. The think time is the idle time when the server or the client is not doing anything; it does not include query time. During the think time, the user may be conversing on the telephone, working in another application (such as email) or doing some other task. Using the Server Manager command line utility, srvrmgr, the Siebel Administrator can run the "list statistics" command to calculate the "Average Think Time" for a process. This information is used to calculate the first set of parameters.

    MaxTasks = concurrent users + anonymous user pool   [1000+100]
    MaxMTServers = MaxTasks / 100   [1100/100 = 11]
    Number of Sessions per SISNAPI Connection = 20

Observations:
For environments where there is lack of machine resource, such as lack of memory, it is recommended a lower MaxTasks / MaxMTServer ratio. It is necessary to make tests to tune it and find a proper value. But the ratio in these scenarios can go from around 25 to 75.
For Object Managers that use Product Configurator, the recommended MaxTasks / MaxMTServer ratio is 25. The same 25 ratio is recommended for eCommunications Object Manager.

Max Tasks
Maximum number of tasks represents the maximum number of concurrent user sessions that can run on a server at one time. An MT Server is equivalent to a single process of an Object Manager. Each MT Server is implemented as an operating system process; it has its own memory space and processor identifier (PID). The default value is 20.
NOTE: For Siebel Servers running on the Solaris platform: When using the Oracle 8i client, setting a high ratio of tasks per OM process may cause the object manager to end unexpectedly. For additional information and workarounds for this behavior, review "Alert 881: Intermittent "Login Failed" Error Running Siebel Server on Solaris with Oracle 8i Database"
Note: There are limits on per process memory utilization set up at Siebel level & OS level.
If you have high number of tasks per process then this might cause problem.

Max MT Servers and Min MT Servers
Maximum MT Servers is the maximum number of MT Servers that can be run for this component on this server. It is also used to calculate how many tasks can be run on each MT Server. Minimum MT Servers determines how many MT Servers start initially when the Siebel Server starts. It also determines the minimum number of MT Servers to run on a Siebel Server, in the event many users log out. The loading of a new MT Server into memory is CPU-intensive, and users may experience a short delay in logging into the Siebel application. In order to prevent this delay, Siebel Administrators may set the Minimum MT Servers parameter equal to the Maximum MT Servers parameter. However, some Siebel Administrators may configure Minimum MT Servers to be lower than the Maximum MT Servers to tune the Siebel application for the normal usage load, while allowing the potential for spikes in user load. Siebel Systems generally recommends that customers set the Minimum MT Servers parameter equal to the Maximum MT Servers parameter for most deployments.

The ratio MaxTasks / MaxMTServers is equal to the Max Number of Tasks running in one instance of a MT Server. When the number of running tasks exceeds the number of tasks that can be supported by the running MT Servers, a new MT Server will be started. Siebel Systems recommends administrators to begin tuning with a ratio of 100:1, assuming an average 30 second think time. If the average user think time is 15 seconds, then the ratio is 50:1 (50% of 100:1). If the average user think time is 60 seconds, then the ratio is 200:1 (200% of 100:1). This will give Siebel Administrators an initial benchmark of performance. Customizations and usage of the Siebel application will dictate whether to increase or decrease these ratios.