Linux Kernel Parameters for Oracle Installation

Installing oracle in a Linux box requires several requirements and modifications to your kernel. I will show you the requirements to install ORACLE 11g on centos 6.2.

To make it complete, I am going to show other requirements also.

Hardware requirements

According to ORACLE, your Linux box should have at least 1GB of RAM and twice that of SWAP partition size. Also you should have /tmp size more than 400MB.

[root@livecd Desktop]# grep MemTotal /proc/meminfo
MemTotal: 723740 kB
[root@livecd Desktop]# grep SwapTotal /proc/meminfo
SwapTotal: 1500000 kB

Modify the kernel parameters

To check and change the kernel parameters, you can open sysctl.conf using vi or any other editor.

[root@livecd Desktop]#vi /etc/sysctl.conf
# Kernel sysctl configuration file for Red Hat Linux
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details
# Controls IP packet forwarding
net.ipv4.ip_forward = 0
# Controls source route verificationnet.ipv4.conf.default.rp_filter = 1
# Do not accept source routingnet.ipv4.conf.default.accept_source_route = 0
# Controls the System Request debugging functionality of the kernelkernel.sysrq = 0
# Controls whether core dumps will append the PID to the core filename# Useful for debugging multi-threaded applicationskernel.core_uses_pid = 1
# Controls the use of TCP syncookiesnet.ipv4.tcp_syncookies = 1

# Controls whether core dumps will append the PID to the core filename# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
# Controls the use of TCP syncookiesnet.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the maximum size of a message, in bytes
kernel.msgmnb = 65536

# Controls the default maxmimum size of a mesage queue
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 4294967295

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 268435456

You can see the kernel entries above. As per the oracle requirements, the above entries should be greater than or equal to below values.

Parameter Value

semmsl - 250
semmns - 32000
semopm - 100
semmni - 128

shmall - 2097152

shmmax - Half the size of physical memory (in bytes)

shmmni - 4096

file-max - 65536

ip_local_port_range - Minimum:1024

Maximum - 65000

rmem_default - 1048576

rmem_max - 1048576

wmem_default - 262144

wmem_max - 262144
[root@livecd Desktop]# sysctl -a |grep kernel.sem
kernel.sem = 250 32000 32 128
[root@livecd Desktop]# sysctl -a |grep kernel.shm
kernel.shmmax = 4294967295
kernel.shmall = 268435456
kernel.shmmni = 4096
[root@livecd Desktop]# sysctl -a |grep file-max
fs.file-max = 70692
[root@livecd Desktop]# sysctl -a |grep ip_local_port_range
net.ipv4.ip_local_port_range = 32768 61000
[root@livecd Desktop]# sysctl -a |grep rmem_default
net.core.rmem_default = 112640
[root@livecd Desktop]# sysctl -a |grep rmem_max
net.core.rmem_max = 131071
[root@livecd Desktop]# sysctl -a |grep wmem_default
net.core.wmem_default = 112640
[root@livecd Desktop]# sysctl -a |grep wmem_max
net.core.wmem_max = 131071
[root@livecd Desktop]# sysctl -a |grep aio-max-nr
fs.aio-max-nr = 65536

The above changes had been made to parameters. If you know how to work around vi editor, this is nothing. After changing the values, you should commit using below command:

[root@livecd Desktop]# sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 4294967295
kernel.shmall = 268435456
[root@livecd Desktop]#

What are all these parameters about?

Shared memory

Oracle uses shared memory in Unix to access different data structures.

SHMMAX - maximum shared memory and should be large enough.
SHMMNI - minimum required memory and default set to 4096.
SHMALL - total shared memory in pages and default set to 2097152.


These are the counters used to access shared resources. This is use for the integrity of the shared resources.

SEMMSL - Used to control the maximum number of semaphores per set.
SEMMNI - Used to control the maximum number of semaphore sets in full Unix system.
SEMMNS - Used to control the maximum number of semaphores in full Unix system.
SEMOPM - Used to control the number of semaphore operations per semop system call.

Read Also

Leave a Comment