Kernel Parameter Settings for Linux
For Linux, use the ipcs command to obtain a list of the system’s current shared
memory segments and semaphore sets, and their identification numbers and owner.
Setup Tasks to Perform as root User
Perform the following steps to modify the kernel parameters by using the /proc
file system.
1. Log in as the root user.
2. Change to the /proc/sys/kernel directory.
3. Review the current semaphore parameter values in the sem file by using the
cat or more utility. For example, using the cat utility, enter the following
command:
# cat sem
The output lists, in order, the values for the SEMMSL, SEMMNS, SEMOPM,
and SEMMNI parameters. The following example shows how the output
appears:
250 32000 32 128
In the preceding output example, 250 is the value of the SEMMSL parameter,
32000 is the value of the SEMMNS parameter, 32 is the value of the SEMOPM
parameter, and 128 is the value of the SEMMNI parameter.
4. Modify the parameter values by using the following command syntax:
# echo SEMMSL_value SEMMNS_value SEMOPM_value SEMMNI_value > sem
Replace the parameter variables with the values for your system in the order
that they are entered in the preceding example. For example:
# echo 100 32000 100 100 > sem
5. Review the current shared memory parameters by using the cat or more
utility. For example, using the cat utility, enter the following command:
# cat shared_memory_parameter
In the preceding example, the variable shared_memory_parameter is either the
SHMMAX or SHMMNI parameter. The parameter name must be entered in
lowercase letters.
6. Modify the shared memory parameter by using the echo utility. For example,
to modify the SHMMAX parameter, enter the following command:
# echo 2147483648 > shmmax
7. Modify the shared memory parameter by using the echo utility. For example,
to modify the SHMMNI parameter, enter the following command:
# echo 4096 > shmmni
8. Modify the shared memory parameter by using the echo utility. For example,
to modify the SHMALL parameter, enter the following command:
# echo 2097152 > shmall
9. Write a script to initialize these values during system startup, and include the
script in your system init files.
10. Set the File Handles by using ulimit -n and /proc/sys/fs/file-max.
# echo 65536 > /proc/sys/fs/file-max
ulimit -n 65536
11. Set the Sockets to /proc/sys/net/ipv4/ip_local_port_range
# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_change
12. Set the Process limit by using ulimit -u. This will give you the number of
processes per user.
ulimit -u 16384
The parameters in the following table are the minimum values required to run
Oracle9i with a single-database instance on Linux.
See Also: Your system vendor’s documentation for more
information on script files and init files.
SEMMNI 100 Defines the maximum number of semaphore sets in the entire
system.
SEMMNS 256 Defines the maximum semaphores on the system. This
setting is a minimum recommended value, for initial
installation only.
The SEMMNS parameter should be set to the sum of the
PROCESSES parameter for each Oracle database, adding the
largest one twice, and then adding an additional 10 for each
database.
SEMOPM 100 Defines the maximum number of operations for each semop
call.
SEMMSL 100 Defines the minimum recommended value, for initial
installation only.
SHMMAX 2147483648 Defines the maximum allowable size of one shared memory
segment.
2 GB for SMP kernel. The recommended size is half the RAM
size.
SHMMIN 1 Defines the minimum allowable size of a single shared
memory segment.
SHMMNI 100 Defines the maximum number of shared memory segments
in the entire system.
SHMSEG 4096 Defines the maximum number of shared memory segments
one process can attach.
SHMVMX 32767 Defines the maximum value of a semaphore.