Installation guide
Note that if you set SHMMAX to 4294967296 bytes (4*1024*1024*1024=4GB) on a 32-bit system, then
SHMMAX will essentially be set to 0 bytes since it wraps around the 32-bit 4GB value. This means that SHM-
MAX should not exceed 4294967295 on a 32-bit system. In fact for Red Hat Enterprise Linux 5 x86, it should
be approximately 3700000000. On x86-64 platforms, SHMMAX can be much larger than 4GB since the virtual
address space is not limited by 32 bits. Oracle recommends to set SHMMAX value to the half of the size of
RAM but on 32-bit platform the value should not exceed 4294967295 (4GB – 1 byte).
Since the SGA is comprised of shared memory, SHMMAX can potentially limit the size of the SGA. For that
reason, SHMMAX should be slightly larger than the size of the SGA. If SHMMAX is too small, you can get er-
ror messages similar to
ORA-27123: unable to attach to shared memory segment
It is highly recommended that the shared memory fits within the Huge Pages pool, see Large Memory Opti-
mization (Huge Pages) in this document.
To determine the size of system RAM:
# grep MemTotal /proc/meminfo
MemTotal: 16777216 kB
To check the maximum size of a shared memory segment:
# cat /proc/sys/kernel/shmmax
2147483648
The recommended value of SHMMAX on 64-bit platform in this case is 16777216 * 1024 / 2 = 8589934592.
The value of SHMMAX can be changed in the proc file system without reboot:
# echo 8589934592 > /proc/sys/kernel/shmmax
Alternatively, you can use sysctl(8) to change it:
# sysctl -w kernel.shmmax=8589934592
To make a change permanent, add the following line to the file /etc/sysctl.conf (your setting may vary).
This file is used during the boot process.
# echo "kernel.shmmax=8589934592" >> /etc/sysctl.conf
Setting SHMMNI Parameter
This parameter sets the system wide maximum number of shared memory segments. Oracle recommends
SHMMNI to be at least 4096 for Oracle 10g. Since this recommendation is a minimum setting, it is best to set it
to 4096 or greater.
To determine the system wide maximum number of shared memory segments, run:
# cat /proc/sys/kernel/shmmni
4096
18 | www.redhat.com