Calculate required kernel parameters for running Oracle 11g Release 2 on Linux

The following is a short guide on how to calculate the required kernel parameters for running Oracle 11g Release 2 database on Linux.

In addition to that i add some parameters recommended by myself.

Note that for running Oracle Grid Infrastrucure (aka “Clusterware”) some additional parameters might be required.

Values required by Oracle according to the documentation

The following tables list the required MINIMUM values according to the oracle documentation.

[table id=3 /].

[table id=4 /]

[table id=5 /]

Calculate the required values

The following table shows calculation formulas for setting the required kernel parameters for running oracle 11g release 2 on Linux.

[table id=7 /]

The default page size needed for some calculations can be obtained by doing:

getconf PAGESIZE

The output states the default (not huge page size) in bytes.



The shell limits shown above should be enough initially. However if you have many data files (> 1000) i would increase the number of open files by doubling the value. All other parameters are sized big enough for almost every environment.

For using the new Automatic Memory Management Feature which automatically sized SGA and PGA Oracle uses a pseudo file system /dev/shm. If activating this feature by setting MEMORY_MAX_SIZE or MEMORY_TARGET in your init.ora you have to size /dev/shm appropriately. The following table outlines how to do it:

[table id=5 /]

You can make this change permanent by editing your /etc/fstab. For instance the following change will set /dev/shm to a size of 13 GB:

...
shmfs /dev/shm   tmpfs   size=13g 0
...

Addition values recommended by Ronny Egner

Note: The values mentioned there are values set from experience. Set them at your own risk!

[table id=8 /]

4 thoughts on “Calculate required kernel parameters for running Oracle 11g Release 2 on Linux”

  1. Setting the kernel.shmmax value greater then 4GB -1 has the following disadvantage: If Oracle segfaults it will not be able to write a coredump file. This value represents the max size of a single shared memory segment, if your SGA(s) is larger than this value than multiple shared memory segments will be used. From metalink Doc ID:567506.1

Leave a Reply

Your email address will not be published.