14 Haziran 2010

Configuring kernel params before any Oracle installation

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

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

Include lines only for the kernel parameter values that you want to change. For the semaphore parameters (kernel.sem), you must specify all four values. However, if any of the current values are larger than the recommended value, specify the larger value.
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 256 32000 100 142
fs.file-max = 131072
net.ipv4.ip_local_port_range = 10000 65000
kernel.msgmni = 2878
kernel.msgmax = 8192
kernel.msgmnb = 65535

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

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

# /sbin/sysctl -p

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

On SUSE Linux Enterprise Server only, enter the following command to cause the system to read the /etc/sysctl.conf file when it reboots:

# chkconfig boot.sysctl on

To increase the shell limits:

Add the following lines to /etc/security/limits.conf file:

*        soft   nproc         2047
*        hard   nproc         16384
*        soft   nofile        2048
*        hard   nofile        65536

Add the following line to the /etc/pam.d/login file, if it does not already exist:

session    required     /lib/security/pam_limits.so

Depending on the oracle user's default shell, make the following changes to the default shell start-up file:

For the Bourne, Bash, or Korn shell, add the following lines to the /etc/profile file:

if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
              ulimit -u 16384 -n 65536

For the C or tcsh shell, add the following lines to the /etc/csh.login file:

if ( $USER == "oracle" ) then
        limit maxproc 16384
        limit descriptors 65536