Siebel CRM Performance Tuning Guide Siebel Innovation Pack 2015, Rev. A E54321_01 |
|
Previous |
Next |
View PDF |
This chapter describes tuning steps designed to improve the performance and scalability of your Siebel Enterprise Server or Siebel Web Server Extension installation. It contains the following topics:
"Tuning Microsoft Windows for Enhanced Siebel Server Performance"
"Tuning the Siebel Server for All UNIX and Linux Operating Systems"
"Tuning the Web Server Computer for All Applicable UNIX and Linux Operating Systems"
"Tuning the Siebel Web Server Extension for All UNIX and Linux Operating Systems"
"Tuning an Apache Web Server for Applicable UNIX and Linux Operating Systems"
Before doing any of the procedures in this chapter, you must have completed the minimum necessary steps described in the chapters about installing and configuring the Siebel Gateway Name Server and the Siebel Server contained in the Siebel Installation Guide for the operating system you are using. See also Siebel System Administration Guide and Siebel System Monitoring and Diagnostics Guide.
Note: The settings provided in this chapter are based on a controlled lab environment using a standard Siebel application, such as Siebel Call Center. The degree of performance gained by using these settings at your site depends on your implementation. Contact your vendor for additional tuning recommendations for your supported operating system platform. Information is provided where tuning recommendations apply. In general, it can be assumed that tuning is not required if no recommendations are provided. For example, no information is provided about tuning the kernel on Linux operating systems, because such tuning is not necessary in those cases. |
This topic describes how you can configure settings for your Microsoft Windows operating system to optimize the performance of Siebel Business Applications.
For a server computer on which you install Siebel Business Applications software, changing the data throughput setting from Maximize data throughput for file sharing (default) to Maximize data throughput for network applications can result in the following benefits:
Better Symmetrical Multi-Processing (SMP) scalability
Improved networking performance
Allocation of more physical memory for your Siebel applications
Note: Where the Siebel database is on a server computer running Microsoft SQL Server, the setting Maximize data throughput for network applications is set by default, and is also generally recommended for optimal performance. Whether to keep or change this default depends on how you are using the server computer. |
For more information about these settings, see Microsoft's documentation.
You can expand the per-process address limit from 2 GB to 3 GB. This setting reduces the amount of physical RAM available to the operating system from 2 GB to 1 GB. The difference (1 GB) is allocated to your applications. This feature is referred to as 4GT RAM tuning. For information about how to configure this setting, see Microsoft's documentation.
Note: Each Siebel process (Siebel Application Object Manager) cannot use more than 2 GB of RAM. |
For all Siebel Server computers running on supported UNIX or Linux operating systems, setting the environment variables described in this topic can help you to manage your server resources appropriately and stay within appropriate CPU-usage limits.
For Siebel Server computers or Web server computers, the environment variable SIEBEL_ASSERT_MODE
determines whether assert files are created. With the default setting of 0
, the creation of assert files is disabled, which conserves disk space and improves performance.
Set this variable to a nonzero value only if you are performing system diagnostics, and only in consultation with Oracle Global Customer Support. For more information about this variable, see Siebel System Monitoring and Diagnostics Guide.
Set the environment variable SIEBEL_OSD_MAXLIMITS
using one of the following methods (define the variable in the applicable profile for the Siebel Server):
C Shell:
setenv SIEBEL_OSD_MAXLIMITS 1
Korn Shell or Bourne Shell:
SIEBEL_OSD_MAXLIMITS=1;export SIEBEL_OSD_MAXLIMITS
Setting this variable to 1
specifies that operating system maximum values for resources will apply. Such resources might include coredumpsize, cputime, filesize, descriptors, maxmemory, and others.
Depending on the total number of tasks on the Siebel Server, you might need to set the environment variables described here in order to manage these loads. SIEBEL_OSD_NLATCH
controls named latches and SIEBEL_OSD_LATCH
controls unnamed latches. Latches, which are similar to mutexes (mutual exclusion objects), are used for communication between processes.
If SIEBEL_OSD_NLATCH
and SIEBEL_OSD_LATCH
are not defined, the values are 5000 and 1000, respectively. If these values are sufficient for the total number of tasks on the Siebel Server, then you do not need to set these variables. Do not set these variables to values lower than their default values.
Note: Before changing these variables, stop the Siebel Server using thestop_server command, then run the cleansync utility. |
Set SIEBEL_OSD_NLATCH
and SIEBEL_OSD_LATCH
on the Siebel Server computer based on the following formulas (define the variables in the applicable profile for the Siebel Server):
SIEBEL_OSD_NLATCH
= (7 times (cumulative MaxTasks
for all components)) plus 1000
SIEBEL_OSD_LATCH
= 1.2 times (cumulative MaxTasks
for all components)
Assume, for example, that you have enabled two multithreaded server components on the same Siebel Server: SCCObjMgr_enu and WfProcMgr. For SCCObjMgr_enu, MaxTasks
= 700 and, for WfProcMgr, MaxTasks
= 150. In this example, the parameter values must be set as follows:
SIEBEL_OSD_NLATCH
= 6950 = 7 times (700 plus 150) plus 1000
SIEBEL_OSD_LATCH
= 1020 = 1.2 times (700 plus 150)
Note: Although the formulas presented here are expected to work for most deployments, in certain cases you might need to increase (for example, double) the values of these variables, and then monitor system behavior with the adjusted values. (An error message such asSBL-OSD-00217: Error exceeded maximum number of latches can sometimes be generated even when the variables are set according to the recommended formulas. |
For more information about settings applicable to Linux operating systems, see 1329461.1 (Article ID) on My Oracle Support.
This topic describes how to configure the thread stack size for a Siebel thread on the Web server computer. The Siebel Web Server Extension (SWSE) is responsible for Siebel thread creation in the Web server.
Note: The topic describes only fine tuning the stack size of the Siebel thread. It is not applicable to Web server native threads. |
The default thread stack size is 512 KB, or 524288 bytes, for the Siebel threads in all UNIX and Linux operating systems supported for the Web server computer on which you install the SWSE.
In many cases, the default thread stack size for Siebel thread might be larger than necessary. With a larger thread stack size, the httpd process consumes more resources, and thus fewer users can be supported for each httpd process than with smaller sizes.
If you determine that a smaller thread stack size for the Siebel thread in a Web server is more suitable for your Siebel applications, then you can set the SIEBEL_OSD_PTHREAD_STACK_SIZE
environment variable at the operating system level to specify the size that you require, in bytes. Some Siebel CRM applications might require only the minimum thread stack size, while others might require a size larger than this. Setting SIEBEL_OSD_PTHREAD_STACK_SIZE
is at the customer's discretion, based on the nature of the Siebel applications running on each Web server.
Note: The minimum Siebel thread stack size is 16 KB, or 16384 bytes. If you setSIEBEL_OSD_PTHREAD_STACK_SIZE to a value lower than 16384, then the effective value is 16384. |
Use the following procedure to configure the thread stack size on the Web server computer, for all Web server platforms except Oracle HTTP Server.
To configure the Siebel thread stack size on the Web server computer, for all Web servers except Oracle HTTP Server
Open a new shell and execute a command similar to the following (this example sets the thread stack size to 64 KB):
C Shell
setenv SIEBEL_OSD_PTHREAD_STACK_SIZE 65536
Korn or Bourne Shell
export SIEBEL_OSD_PTHREAD_STACK_SIZE=65536
Stop the Web server.
Start the Web server.
Use the following procedure to configure the Siebel thread stack size on the Web server computer, for Oracle HTTP Server.
To configure the Siebel thread stack size on the Web server computer, for Oracle HTTP Server
Navigate to the $ORACLE_HOME/opmn/conf
directory.
Open the opmn.xml file.
Locate SIEBEL_CODEPAGE
.
Below the line containing SIEBEL_CODEPAGE
, insert a line similar to the following (this example sets the thread stack size to 64 KB):
<variable id="SIEBEL_OSD_PTHREAD_STACK_SIZE" value="65536"/>
Save the opmn.xml file.
Stop the Web server.
Start the Web server.
You must tune the Siebel Web Server Extension (SWSE) to run Siebel Business Applications on UNIX platforms.
To tune the SWSE for UNIX platforms
In the SWSE installation directory, navigate to the bin
subdirectory.
Using a text editor such as vi
, open the eapps.cfg file for editing.
Set the appropriate anonymous user names and passwords as values for the AnonUserName
and AnonPassword
parameters.
How you set these parameters will depend on your user authentication strategy. When specifying passwords in the eapps.cfg file, you must take password encryption into account. For more information, see Siebel Security Guide.
Set GuestSessionTimeout
to 60
.
Note: This configuration is appropriate for application scenarios where users browse without logging in. |
Restart the Web server for these changes to take effect.
Related Topics
"Tuning an Apache Web Server for Applicable UNIX and Linux Operating Systems"
Applicable Web server topics for particular operating systems
Related Book
Siebel Security Guide
Several of the Web servers supported for use with Siebel Business Applications are based on the Apache Web Server. These include Oracle HTTP Server, IBM HTTP Server, and HP Apache Web Server, which are supported on certain UNIX and Linux operating systems.
This topic describes recommended parameter settings that are optimized for scalability and performance on an Apache Web Server. You can further adjust these settings at your discretion to optimize the performance of your Web server. For Web server support details, see the Certifications tab on My Oracle Support.
The default setting for ThreadLimit
for the Apache Web Server is 64, but this parameter can be set to a much higher number, subject to limitations from kernel settings. Related parameters include ThreadsPerChild
, MaxClients
, and ServerLimit
.
Many parameter settings are subject to available memory and other resources. High values for parameters such as MaxClients
or ThreadLimit
can increase memory usage. User lower values to reduce memory usage.
ThreadLimit = 20000
is the maximum value supported by the Apache Web Server. You can set this parameter to a number your system supports.
Note: TheThreadLimit parameter must be executed before other parameters. |
ThreadsPerChild =
Number of threads per child. Cannot exceed ThreadLimit
.
MaxClients =
Maximum connection.
ServerLimit
= Typically, set this parameter to the value of MaxClients
divided by the value of ThreadsPerChild
. (If MaxClients
and ThreadsPerChild
are set the same, then set ServerLimit
to 1
.)
Related Topics
"Tuning the Web Server Computer for All Applicable UNIX and Linux Operating Systems"
Applicable Web server tuning topics for specific operating systems
To configure parameters for an Apache Web Server
Using a text editor, set values for parameters in the worker.c section of the file Web_server_install
/conf/httpd.conf
, where Web_server_install
is the root directory in which your Web server is installed. Set the parameter values as shown in the table below:
ThreadLimit |
N
where N is a value 1 or 1.2 times the maximum number of concurrent users (threads). The value for the applicable parameters can be set equal to or up to 1.2 times the number of concurrent users that the Web server must support. The specific values to use for each applicable parameter depend on your organization's requirements. |
ServerLimit |
MaxClients divided by ThreadsPerChild |
StartServers |
1 |
MaxClients |
ServerLimit multiplied by ThreadsPerChild |
MinSpareThreads |
1 |
MaxSpareThreads |
N
where N is a value greater than or equal to the sum of |
ThreadsPerChild |
N
where N is a value less than or equal to |
MaxRequestsPerChild |
0 |
KeepAlive |
Consider setting this parameter to Off to prevent the Web server from providing persistent connections and to free connections for reuse. However, using this setting can incur a cost, because memory will be used to close and set up new TCP/IP connections. |
KeepAliveTimeout |
Optionally, you can reduce the value for this parameter so that a thread is reused more quickly. |
Note: For HP-UX, if you are not using multiplex sessions, then make sure that the kernel parametermax_thread_proc is set to a number greater than two times N. |
In the file httpd.conf, also set the following values:
The value for ServerName
must match the name of the Web server computer on which you installed the SWSE.
Change the values for User
and Group
to a valid computer user and group:
Ideally, the user ID has no privileges that allow access to files other than those used by the Siebel application. This user, however, does have full access rights (read, write, execute) to the SWSE installation directory and its subdirectories.
It is recommended that the group be created specifically for running this server.
Caution: For security reasons, it is recommended not to use root forUser or Group . |
The value for UseCanonicalName
is recommended to be set to Off
. It must be set to Off
if you are load-balancing your Web servers.
If you are not using the CGI functionality of the Web server, then you might want to comment out the line that loads the CGI module. Doing so will make tracking Web server processes simpler, because there will be always one child process. The line is as follows:
LoadModule cgid_module modules/mod_cgid.so
Set MaxKeepAliveRequests
to 0.
Note: On Oracle iPlanet Web Server, the settingmax-requests-per-connection is equivalent to MaxKeepAliveRequests . For more information, see 1570339.1 (Article ID) on My Oracle Support. |
This topic provides instructions for configuring and tuning Web servers, operating system settings, and Siebel Enterprise Server components so that you can run Siebel applications on AIX. It contains the following information:
This topic is part of "Tuning Siebel Business Applications for AIX". It describes recommended values for environment variables that are optimized for scalability and performance on IBM HTTP Server (IHS) Web server. You can further adjust these settings at your discretion to optimize the performance of your Web server. For more information about tuning the Web server, see:
"Tuning the Web Server Computer for All Applicable UNIX and Linux Operating Systems"
Applicable Web server tuning topics for particular operating systems
This topic is part of "Tuning Siebel Business Applications for AIX".
AIX provides several environment variables that can be tuned to optimize Siebel Server performance. These environment variables and their values are used as start parameters when the Siebel Server is started. Table 13-1 and Table 13-2 describe each of these environment variables and their recommended settings.
Note: For more information about tuning the Siebel Server, see "Tuning the Siebel Server for All UNIX and Linux Operating Systems". |
Table 13-1 Environment Variables Used for Optimization in $SIEBEL_ROOT/siebenv
Environment Variable | Value | Description |
---|---|---|
AIXTHREAD_SCOPE |
S |
Controls contention scope. S signifies system-based contention scope (1:1). |
AIXTHREAD_MNRATIO |
1:1 |
Controls the M:N ratio of number of kernel threads that must be employed to handle runnable pthreads. |
AIXTHREAD_MUTEX_DEBUG |
OFF |
Maintains a list of active mutexes for use by the debugger. |
AIXTHREAD_RWLOCK_DEBUG |
OFF |
Maintains a list of read-write locks for use by the debugger. |
AIXTHREAD_COND_DEBUG |
OFF |
Maintains a list of condition variables for use by the debugger. |
Table 13-2 Environment Variables Used for Optimization in $SIEBEL_ROOT/bin/siebmtshw
Environment Variable | Value | Description |
---|---|---|
SPINLOOPTIME |
1000 |
Controls the number of times to retry a busy lock before yielding to another processor. |
YIELDLOOPTIME |
>=n
A number greater than or equal to the number of processors. |
Controls the number of times to yield the processor before blocking on a busy lock (only for libpthreads). Set this variable, at the minimum, equal to the number of processors on the computer. |
MALLOCOPTIONS |
buckets,considersize,multiheap:4 |
Include in the value an integer representing the number of processors on this computer. In this case, the value 4 would be used for a four-processor computer. |
LDR_CNTRL |
Example values:
|
The |
This topic is part of "Tuning Siebel Business Applications for AIX".
There are several AIX kernel settings that you can tune for optimal Siebel Server or Web server performance under AIX. These include the Virtual Memory Management and TCP settings. You must have root privileges to modify these settings. Use the vmo
, ioo
, and no
commands to tune the AIX kernel. For more information about AIX kernel settings, including several that are not mentioned in this guide, see 1097858.1 (Article ID) on My Oracle Support. See also your operating system vendor's documentation.
To change the Kernel settings
Using a text editor such as vi
, open the /etc/rc.net
file for editing.
Modify settings using ioo
and no
, following the guidance of 1097858.1 (Article ID) on My Oracle Support.
Note: Use default values for settings forvmo . |
Check the settings for all User Limits (ulimit) and make sure that they are set to -1 (unlimited), as follows:
ulimit if -a
Note: To change the set limits, update the/etc/security/limits file by changing all ulimit parameter values to -1 (unlimited). |
Save your changes and exit the editor.
Make sure that the rpc.statd and rpc.lockd daemons run on the Siebel Server computer and on the server computer where the Siebel File System is located. Then set the number of threads for the rpc.lockd daemon on each applicable server computer.
It is recommended to increase the number of rpc.lockd daemon threads from the default. If possible, use the maximum number of threads, which is 511. System degradation can occur and logins might be blocked if the rpc.lockd daemon is not configured to handle a large number of lock requests. For example, you might execute commands like this:
chssys -s rpc.lockd -a 511stopsrc -s rpc.lockd; startsrc -s rpc.lockd
Restart the server computer to have the new settings take effect.
This topic provides instructions for configuring and tuning operating system settings and Siebel Enterprise Server components so that you can run Siebel applications on HP-UX. It contains the following information:
For information about tuning the Web server, see:
This topic is part of "Tuning Siebel Business Applications for HP-UX".
Modify the HP-UX kernel parameters to values like those shown below (suggested guidelines). Use the HP-UX System Administration Manager (SAM) tool to make these changes.
nproc 4096 - 4096 ksi_alloc_max 32768 - (NPROC*8) max_thread_proc 4096 – 4096 maxdsiz 0x90000000 - 0X90000000 maxdsiz_64bit 2147483648 - 2147483648 maxfiles 4000 - 4000 maxssiz 401604608 - 401604608 maxssiz_64bit 1073741824 - 1073741824 maxtsiz 0x40000000 - 0X40000000 msgmap 4098 - (NPROC+2) msgmni 4096 - (NPROC) msgtql 4096 - (NPROC) ncsize 35840 - (8*NPROC+2048+VX_NCSIZE) nfile 67584 - (16*NPROC+2048) ninode 34816 - (8*NPROC+2048) nkthread 7184 - (((NPROC*7)/4)+16) nproc 4096 - 4096 nsysmap 8192 - ((NPROC)>800?2*(NPROC):800) nsysmap64 8192 - ((NPROC)>800?2*(NPROC):800) semmni 1024 - 1024 semmns 16384 - ((NPROC*2)*2) semmnu 2048 - 2048 semume 256 - 256 shmmax 0x40000000 Y 0X40000000 shmmni 1024 - 1024 shmseg 1024 Y 1024 vps_ceiling 64 - 64
This topic is part of "Tuning Siebel Business Applications for HP-UX".
Siebel Business Applications will have better performance on HP-UX if you make the following changes, which allow the Siebel Server to execute the HP-UX scheduler upon startup. You must have root privileges to make these changes.
To set permissions for the HP-UX scheduler
Add the following line to the /etc/privgroup
file, creating it if necessary:
-g RTSCHED
Save the file and exit.
Execute the following command:
setprivgrp -f /etc/privgroup
Verify that global RTSCHED
permissions are set by executing the following command:
getprivgrp
If the command is successful, then the system will respond:
global privileges: RTSCHED
This topic provides instructions for configuring and tuning Web servers, operating system settings, and Siebel Enterprise Server components so that you can run Siebel applications on Oracle Solaris. It contains the following information:
This topic is part of "Tuning Siebel Business Applications for Oracle Solaris".
If you have a busy Web server, then some of your users might experience difficulty connecting to your Web server. To address this issue, change the default values for the tcp_conn_req_max_q
and tcp_conn_req_max_q0
parameters in Oracle Solaris, using the ndd
command. For more information about how to use the ndd
command, see "Tuning Siebel Application Object Manager Instances for Oracle Solaris".
Also tune the Oracle iPlanet Web Server for optimal performance using the following procedure. For more information about tuning the Web server, see "Specifying Static File Caching".
Note: For more information about possible Oracle iPlanet Web Server parameter settings, see the product documentation for versions of this Web server supported for Siebel Business Applications. |
To tune the Oracle iPlanet Web Server
Using a text editor such as vi
, open the file Web_server_Root
/config/magnus.conf
, where Web_server_Root
is the root path of the Oracle iPlanet Web Server.
Set the RqThrottle
parameter to 1024
or a higher value, depending on computer resources such as memory and CPU.
The RqThrottle
parameter specifies the maximum number of simultaneous transactions that the Web server can handle. The default value is 512
. By changing this value to 1024
or a higher value, you can reduce or minimize latencies for the transactions that are performed.
Add or modify the MaxKeepAliveConnections
parameter, setting its value to 1000
. The default value is 200
.
Save your modifications to the magnus.conf file.
Restart the Web server.
After making the preceding changes to the Oracle iPlanet Web Server parameters, change the following parameters on the workstation hosting the Oracle iPlanet Web Server.
Open the /etc/system
file for editing.
Set the Oracle Solaris system parameters as shown in the following table:
Parameter | Scope | Default Value | Tuned Value | Comments |
---|---|---|---|---|
rlim_fd_max |
/etc/system |
1024 |
65536 |
Process open file descriptors limit.
The tuned value shown is a starting point. A higher value could be used, depending on the expected load (for associated sockets, files, and pipes, if any). |
rlim_fd_cur |
/etc/system |
64 |
65536 |
The tuned value shown is a starting point. A higher value could be used, depending on the expected load (for associated sockets, files, and pipes, if any). |
kernel_cage_enable |
/etc/system |
0 |
1 |
Enables the kernel cage. |
Restart the workstation hosting the Oracle iPlanet Web Server.
This topic is part of "Tuning Siebel Business Applications for Oracle Solaris".
To run Siebel Servers or Web servers in an Oracle Solaris environment, you need to set Oracle Solaris kernel parameters to specific recommended values for particular releases of Oracle Solaris servers. To learn the specific parameter recommendations for Siebel Servers or Web servers running on Oracle Solaris, contact Oracle Advanced Customer Services. Contact your Oracle sales representative to request assistance from Oracle Advanced Customer Services.
Several Oracle Solaris kernel parameter settings significantly affect performance of Siebel Business Applications in general, and the Siebel Server in particular.
Oracle Solaris kernel parameters reside in the configuration file /etc/system
. To change the settings for these parameters, you must manually edit this file, save your changes, and reboot the system.
Normally, the Oracle Solaris kernel memory parameter settings are relatively low. However, for large memory-model applications like the Siebel Server applications, it is recommended that you increase the values assigned to several of these parameters.
Caution: If you use the default Oracle Solaris kernel parameters, or lower, to run a Siebel Server in an Oracle Solaris environment, then there is a risk of serious performance problems, resulting in SIGABRT or SIGSEV errors for some Siebel Server components. |
To tune the Oracle Solaris kernel settings for Siebel Server
Using an editor such as vi
, open the /etc/system
file for editing.
Add or modify the following lines, which are general settings:
set rlim_fd_cur = 65536 set kernel_cage_enable = 1 set rlim_fd_max = 65536
Save your changes and exit the editor.
Restart the server computer to have the new settings take effect.
This topic is part of "Tuning Siebel Business Applications for Oracle Solaris".
Oracle Solaris computers running more than 50 Application Object Manager instances (multithreaded processes for Siebel Application Object Manager) might experience a situation where one or more of the processes do not start correctly, while the rest start and function normally. The log files for the processes that do not start will indicate that they have not started correctly. If you experience these symptoms, then change the tcp_conn_req_max_q
and tcp_conn_req_max_q0
default values, using the ndd
command.
To change TCP values
Log in as root
.
Issue the ndd
command:
Note: The responses are noted in bold. |
ndd /dev/tcp name to get/set ? tcp_conn_req_max_q value ? 1024 name to get/set ? tcp_conn_req_max_q0 value? 4096
Add the following lines to the /etc/system
file, using any text editor such as vi:
set tcp:tcp_conn_req_max_q = 1024 set tcp:tcp_conn_req_max_q0 = 4096
Save your changes and exit the editor.