Tuning the Siebel Server for AIX

This topic is part of Tuning Siebel CRM 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. The following tables 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.

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.

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,mu

ltiheap: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:

LOADPUBLIC@MAXDATA=0x50000000 (this value, which specifies five segments, sets a maximum process size of 1.25 GB)

LOADPUBLIC@MAXDATA=0x60000000 (this value, which specifies six segments, sets a maximum process size of 1.5 GB)

The LOADPUBLIC option directs the system loader to load all modules requested by an application into the global shared library segment. Set LDR_CNTRL in the environment of the user, or, preferably, in the shell script that launches the executable program that needs the extra memory.

EXTSHM ON EXTSHM allows for segments to be generated from already allocated memory allowing for better scalability; optional

Notes on LDR_CNTRL:

  • IGNOREUNLOAD is deprecated.
  • PREREAD_SHLIB causes the entire library to be loaded as soon as one routine is accessed. Provides smoother performance of the application.
  • For Siebel 8.x MAXDATA of up to 8 segments is supported. Please refer to instructions below to raise the Memory Per Process Limit To 3.25 GB for Siebel Running on AIX Platform.
  • MWNO_SIGNAL_CATCHING is strongly recommended to be set to True; this will avoid process hang which usually are hard to be detected.

Notes on RT_GRQ parameter:

  • Under no conditions should RT_GRQ be enabled.This parameter was used in Siebel 7.0 and AIX 4.0. In later releases it has been implicated in application crashes and severe performance degradation in later releases of AIX.
  • Set MAXUPROC to (200 + (MAXTASK/MaxMTServer)). Too low a value for MAXUPROC will cause server processes to abort. Unproductive consumption ofkernel memory will occur at very high values. Never set MAXUPROC below 512. For AIX 7.x, the default is 4096.

Settings for Siebel Web/Application Interface Servers

For Siebel Web/Application Interface Servers, the following settings are recommended:

MALLOCOPTIONS=buckets,considersize,multiheap:4 (at least the number of physical processor cores)

For Siebel Application Interface Servers prior to IP2017, the following Apache-based server settings are recommended:

  • ThreadLimit: Set equal to ThreadsPerChild Notee: This parameter must be set first in the "IfModule worker.c" section.
  • MaxClients; Set to exceed the expected maximum load on the server rounded up to an even multiple of threads per child. Under no circumstances should the system be left without sufficient clients.
  • ThreadsPerChild: Usually set to equal MaxClients
  • ServerLimit: 1
  • StartServer: 1
  • MinSpareThreads: Set to the greater of "25" or 10% of MaxClients integer. Since IHS checks this value approximately once per second, MinSpareThreads should safely exceed the number of new requests you might receive in a second.
  • MaxSpareThreads: Set MaxSpareThreads to 25-30% of MaxClients. If it is too small a fraction of MaxClients, child processes will be terminated and recreated frequently.
  • MaxRequestsPerChild: Leave at the default of 0 for: Set recent releases.

To configure the Siebel thread stack size on the Siebel Application Interface Server prior to IP2017, for all AI 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.

After making changes to AIX parameters, running cleansync to replace the OSDF files is necessary.