Oracle® Communications ASAP Installation Guide
Release 7.2
E18878-04
  Go To Table Of Contents
Contents

Previous
Previous
 
Next
Next
 

4 Configuring the Operating System

This chapter describes how to configure operating systems supported by Oracle Communications ASAP.

About Configuring the Operating System

ASAP can be installed on Oracle Solaris, Oracle Linux, AIX, or HP-UX Itanium. This section describes procedures relating to configuring each operating system and other required applications for use with the ASAP server software.

Before proceeding, the appropriate version of the UNIX operating system must be installed on any machines that will be running ASAP server software, and the machines must be configured to be part of your network. See "Software Requirements" for a list of supported operating systems.


Note:

In order to install and configure the UNIX environment for ASAP as described in this section, you must be familiar with the UNIX operating system. You should know how to configure users and groups, understand shells, and be able to manipulate file and directory permissions. You also need to understand a number of other UNIX system administration concepts.

Configuring a UNIX ASAP Group and User

To support installation and running of ASAP, each ASAP environment that you create must have at least one dedicated UNIX ASAP group and one dedicated ASAP user account within that group. You may choose to have additional ASAP users in the ASAP group, depending on your specific implementation.

Prior to installing ASAP, you must create a UNIX ASAP group and an ASAP user. The ASAP group must be the primary group of the ASAP user.

Creating the UNIX ASAP Group

This group is required to coordinate access to files that are needed to develop and test ASAP. All UNIX users of ASAP must belong to this group.


Note:

Oracle recommends that you use UNIX groups to coordinate the read/write access required for ASAP. You can use any other name for the group that is appropriate for the project, as long as the ASAP and environment users belong to that group.

Create a group for ASAP with the following members:

  • ASAP user account

  • root

Creating the UNIX ASAP User Account

Each ASAP environment must have a dedicated UNIX user account. For development purposes, you may have multiple ASAP environments. In this case, you must define multiple users. In a production environment, you generally have only one environment and therefore only one group and user.

Oracle recommends for configuration if you set the home directory of the ASAP user to be the same directory where you plan to install the ASAP software. Take this into account when you set up the home directory.

Create the ASAP user and password, and make the user's primary group the newly created ASAP group. Additional ASAP user accounts may be needed depending on your implementation.


Note:

You must use this ASAP user account to create the directory where ASAP will be installed. The installer uses the ASAP user account to access the UNIX system and must have write privileges on the destination install directory.

Checking /tmp and /var/tmp Directory Status

You must ensure that the directories /tmp and /var/tmp have their permissions set so that they are writable by all ASAP users. To do this:

  1. Check the permissions on the /tmp directory:

    cd /
    ls -l | grep tmp
    

    Check that the permissions string has the appropriate settings for the ASAP group. Use chmod to update the permissions if needed. For example:

    chmod a+rwx tmp
    
  2. Check the permissions on the /var/tmp directory.

    cd /var
    ls -l | grep tmp
    

Configuring HP-UX Itanium User Space Memory Allocator

ASAP uses the MallocNextGen software for HP-UX Itanium that provides an implementation of the user space memory allocator. You must download and install this software if you are using the HP-UX Itanium platform.

To download and configure the MallocNextGen software:

  1. Go to the following HP website:

    https://h20392.www2.hp.com/portal/swdepot/displayProductInfo.do?productNumber=MallocNextGen

  2. Download and install the MallocNextGen software.


    Note:

    Make sure that you install the libmallocng.so library in the default location provided by the MallocNextGen installer: /usr/lib/hpux32/. The ASAP installer uses this default path when it creates the Environment_Profile during ASAP installation, as shown in the following example:
    if [ -a "/usr/lib/hpux32/libmallocng.so" ]; then  export LD_PRELOAD="/usr/lib/hpux32/libmallocng.so"
    

Configuring the Kernel

There are certain UNIX kernel configuration parameters that require tuning so that both the database and ASAP function correctly. The most important aspect of UNIX kernel configuration is to provide an environment in which the database server can handle hundreds of concurrent connections.

The following are the principal areas that require tuning:

  • Shared memory

    Oracle Database requires the ability to share large amounts of memory. Typically, the potential shared memory size should be 100 MB or greater.

  • Open files per process

    The RDBMS server is expected to manage a large number of concurrent connections. These connections constitute open file descriptors to the RDBMS Server. The maximum number of file descriptors dictates the maximum number of concurrent connections that can be managed by the RDBMS Server. To support multiple ASAP environments, the UNIX kernel should be configured to support an appropriately large number of open files per process.


    Note:

    Consult with your operating system administrator to determine a value.

    In addition, some operating systems use the concept of soft and hard file limits. Ensure that both limits are set appropriately.

  • Asynchronous I/O

    Asynchronous I/O is required for Solaris platforms.

  • Inter process communication

    Inter Process Communication (IPC) modules are implemented as dynamically loadable modules on the Oracle Solaris system. By default, the Solaris operating system loads the IPC subsystem into memory on demand. Separate loadable UNIX kernel modules are available for shared memory, message queues, and semaphores. These modules must be loaded with the kernel at boot time.

To update the UNIX kernel configuration:

  1. Using the information below and in "Configuring the Kernel" update the UNIX kernel parameters.

  2. Reboot the machine after you have made the changes.

For more information, see the ASAP Administrator's Guide.


Note:

When ASAP is deployed on the same platform as the Oracle Database or WebLogic server instance, use the highest kernel value recommended in either ASAP, Oracle Database, or WebLogic Server documentation.

Setting Oracle Solaris Kernel Parameters

This section lists the Oracle Solaris Kernel parameters.

Oracle Solaris 10: /etc/system File:

set project.max-sem-ids=512
Set project.max-shm-ids to 300Set project.max-sem-ids to 512
set process.max-sem-nsems=1024
set pt_cnt=254
set rstchown=0
set maxuprc=1024
set pcie:pcie_aer_ce_mask=0x1
set segkmem_lpsize=0x400000
set rlim_fd_cur=8192
set rlim_fd_max=8192

The following resource control values should be set:

  • Set process.max-sem-nsems to 1024

  • Set project.max-shm-ids to 300

  • Set project.max-sem-ids to 512

Refer to the Solaris 10 documentation for details on how to use resource controls to set kernel parameters.

Setting Linux Kernel Parameters

Oracle recommends that the kernel parameters shown in Table 4-1 are set to values greater than or equal to the value shown.

The procedure following the table describes how to verify and set the values manually.


Note:

The kernel parameter and shell limit values shown in the following section are recommended values, and should be modified after installing Oracle 11g Client for Linux and before installing ASAP.

Table 4-1 lists and describes the recommended kernel parameter settings for supported Linux systems.

Table 4-1 Kernel Parameter Configuration

Parameter Recommended Value File and Description

semmsl

semmns

semopm

semmni

250

3200

32

128

/proc/sys/kernel/sem

This file contains the four numbers that define the limits of the System V IPC semaphores. These fields are:

  • semmsl: The maximum number of semaphores per sempahore set.

  • semmns: The system-wide limit on the number of semaphores in all semaphore sets.

  • semopm: The maximum number of operations that may be specified in a semop(2) call.

  • semmni: The system-wide limit on the maximum number of semaphore identifiers.

shmall

268435456

/proc/sys/kernel/shmall

This file contains the system-wide limits on the total number of pages of System V IPC shared memory.

shmmax

4294967295

/proc/sys/kernel/shmmax

This file can be used to query and set the run-time limit on the maximum System V IPC shared memory segment size that can be created. Oracle recommends 4 GB for optimum system performance.

msgmax

65536

/proc/sys/kernel/msgmax

The msgmax tunable specifies the maximum allowable size of any single message in a System V IPC message queue, in bytes. msgmax must be no larger than msgmnb (the size of the queue).

msgmnb

65536

/proc/sys/kernel/msgmnb

The msgmnb tunable specifies the maximum allowable total combined size of all messages queued in a single System V IPC message queue at one time, in bytes.

The default is 16384.

msgmni

2878

/proc/sys/kernel/msgmni

The msgmni tunable specifies the maximum number of system-wide System IPC message queue identifiers (one per queue). The default is 16.

threads_max

131072

/proc/sys/kernel/threads-max

Gets and sets the limit on the maximum number of running threads system-wide.

file-nr

8192 0 327679

/proc/sys/fs

The three values in the file-nr denote the number of allocated file handles, the number of allocated but unused file handles, and the maximum number of file handles.

queues_max

256

/proc/sys/fs/mqueue

The queues_max is a read/write file for setting and getting the maximum number of message queues allowed on the system.

msgsize_max

8192

/proc/sys/fs/mqueue

The msgsize_max is a read/write file for setting and getting the maximum message size value. This message queue attribute is used when creating any message.

msg_max

32767

/proc/sys/fs/mqueue

The msg_max is a read/write file for setting and getting the maximum number of messages in queue value.


Table 4-2 provides the commands to display the current values of the kernel parameters. Make a note of these values and identify any values that you must change.

Table 4-2 Commands to Display Kernel Parameters

Parameter Command

semms1, semmns, semopm, and semmni

# /sbin/sysctl -a | grep sem

Displays the value of the semaphore parameters in the order listed.

shmall, shmmax, and shmmni

# /sbin/sysctl -a | grep shm

Displays the details of the shared memory segment sizes.

msgmnb, msgmni, and msgmax

# /sbin/sysctl -a | grep msgm

Displays the details of the System V IPC message queue parameters.

threads-max

# /sbin/sysctl -a | grep threads-max

Displays the maximum number of threads possible system-wide.

file-nr

# /sbin/sysctl -a | grep file-nr

Displays the number of allocated file handles, the number of allocated but unused file handles, and the maximum number of file handles.

queues_max

# /sbin/sysctl -a | grep queues_max

Displays the maximum number of message queues allowed on the system.

msgsize_max

# /sbin/sysctl -a | grep msgsize_max

Displays the maximum message size value.

msg_max

# /sbin/sysctl -a | grep msg_max

Displays the maximum number of messages in a queue value.


If the value of any kernel parameter is different from the recommended value, perform the following:

  1. Using any text editor, create or edit the /etc/sysctl.conf file, and add or edit lines similar to the following:


    Note:

    Include lines for kernel parameters values that you want to change. For the semaphore (kernel.sem) and the file-nr (fs.file-nr) parameters, you must specify all values. However, if any of the current values are larger than the recommended values, then specify the larger value.

    kernel.sem = 250 32000 32 128
    kernel.shmall = 268435456
    kernel.shmmax = 4294967295
    kernel.msgmax = 65536
    kernel.msgmnb = 65536
    kernel.msgmni = 2878
    kernel.threads-max = 131072 
    fs.file-nr = 8192 0 327679
    fs.mqueue.queues_max = 256
    fs.mqueue.msgsize_max = 256
    fs.mqueue.msg_max = 32767
    

    By specifying the values in the /etc/sysctl.conf file, these values persist when you restart the system.

  2. Enter the following command to change the current values of the kernel parameters:

    # /sbin/sysctl -p
    

    Review the output from the command to verify that the values are correct. If the values are incorrect, edit the /etc/sysctl.conf file, then enter this command again.

  3. Enter the command /sbin/sysctl -a to confirm the values are set correctly.

  4. After updating the values of the kernel parameters in the /etc/sysctl.conf file, either restart the computer, or run the command sysctl -p to make the changes in the /etc/sysctl.conf file available in the active kernel memory.

Setting HP-UX Itanium Kernel Parameters

This section lists the Hewlett Packard HP-UX kernel parameters.

Table 4-3 Hewlett Packard HP-UX for Itanium Kernel Parameters

Name Recommended Value Description

STRMSGSZ

65535

--

aio_listio_max

512

--

aio_physmem_pct

20

--

aio_max_ops

4096

--

create_fastlinks

1

--

cmc_plat_poll

15

--

dbc_max_pct

5

--

dbc_min_pct

2

--

dnlc_hash_locks

512

--

fs_async

1

--

max_async_ports

8192

--

max_thread_proc

2048

Maximum number of threads allowed in each process.

maxdsiz

0XC0000000

Maximum size (in bytes) of the data segment for any user process.

maxdsiz_64bit

0X400000000

Maximum size (in bytes) of the data segment for 64-bit processes.

maxfiles

4098

The soft limit for the number of files a process is allowed to have open simultaneously.

maxfiles_lim

4098

Hard limit for the number of files that a process is allowed to have open simultaneously.

dbc_min_pct

5

The percentage of physical memory to be used for the buffer cache. Together with setting nbuf and bufpages to 0, these values activate dynamic buffer cache allocation.

dbc_max_pct

10

--

maxssiz

0X8000000

Maximum size (in bytes) of the stack for any user process.

maxssiz_64bit

0X10000000

Maximum size (in bytes) of the stack for 64-bit processes.

maxswapchunks

4096

Maximum number of swap chunks.

maxtsiz

0X40000000

Maximum size (in bytes) of the text segment for any user process.

maxuprc

1024

Limits the maximum number of concurrent user processes per user.

mesg

1

Enables Sys V messages at boot time.

msgmap

(2+msgtql)

Number of entries in the System V IPC message space resource map.

msgmax

8192

Maximum System V IPC message size in bytes.

msgmnb

65536

Maximum number of bytes on a single System V IPC message queue.

msgmni

(NPROC)

Maximum number of permitted system-wide System V IPC message queues (IDs).

msgseg

32767

Number of system V IPC message segments in the system.

msgssz

128

Number of bytes in a System V IPC message segment.

msgtql

(NPROC)

Maximum number of System V IPC messages in the system at any time.

ncallout

(NPROC + 16)

Maximum number of pending timeouts. Calculated as nkthread + the number of I/O devices connected to the machine.

nfile

(15 * NPROC + 2048)

Maximum number of files that can be open simultaneously on the system at any given time.

Calculate as follows:

((16*(4200+16+maxusers)/10)+32+2*(npty+nstrpty+nstrtel)

nflocks

NPROC (at least 4096)

Maximum combined total number of file locks that are available system-wide to all processes at any given time.

ninode

(8 * NPROC + 2048)

Maximum number of open inodes that can be in memory.

Calculate as follows:

4200+48+maxusers+(2*npty)

nkthread

2 * NPROC

Limits the number of threads allowed to run simultaneously.

nproc

8192

Limits the number of processes allowed to exist simultaneously.

npty

2000

--

nstrpty

2000

--

nstrtel

2000

--

semmni

512

Number of system V IPC system-wide semaphore identifiers.

semmsl

1043

Maximum number of Semaphores Per ID.

semmni

512

--

semmns

4096

Number of system V IPC system-wide semaphores.

semmnu

(NPROC - 4)

Maximum number of System V IPC undo structures for processes.

semmsl

1024

Number of semaphores in a semaphore set

semvmx

32767

Maximum value of any single System V IPC semaphore.

shmem

1

Enable or disable System V shared memory.

shmmax

0X100000000 (or up to physical memory size)

Maximum size for a System V shared memory segment.

shmmni

300

Number of System V shared memory segment identifiers in the system.

shmseg

120

Maximum number of System V shared memory segments per process.

swapmem_on

1

Allows physical memory size to exceed the available swap space.

vps_ceiling

64

--