Oracle Parameters on Solaris 10

With the availability of the Solaris 10 operating system, the way IPC facilities (e.g., shared memory, message queues, etc.) are managed changed. In previous releases of the Solaris operating system, editing /etc/system was the recommended way to increase the values of a given IPC tunable. With the release of Solaris 10, IPC tunable are now managed through the Solaris resource manager. The resource manager makes each tunable available through one or more resource controls, which provide an upper bound on the size of a given resource.

The table below shows the System V IPC parameter and the corresponding Soalris resource controls for Oracle on Sun Solaris 10 OS.

ParameterOracle Recomendationreq'dResource ControlDefault Value
SEMNI
semsys:seminfo-semmni
100 Y project.max=sem-ids 128
SEMMNS 1024 N N/A N/A
SEMMSL
semsys:seminfo_semmsl
256 Y project.max-sem-nsems 512
SHMMAX
shmsys:shminfo_shmmax
Y project.max-shm-memory 1/4 physical RAM
SHMMIN
shmsys:shminfo-shmmin
1 N
SHMMNI
shmsys:shminfo_shmmni
100 Y project.max-shm-ids 128
SHMSEG
shmsys:shminfo_shmseg
10 N N/A N/A

Since the Solaris resource management facilities are used to set resource limits for Oracle under Solaris 10 the /etc/system should not be edited with resource limits, so only a single parameter should be added to /etc/system:

set noexec_user_stack=1

For Solaris10, add a project for the oracle user and set the recommended resource limits:

projadd -U oracle user.oracle
projmod -s -K "project.max-sem-ids=(priv,100,deny)" user.oracle
projmod -s -K "project.max-sem-nsems=(priv,256,deny)" user.oracle
projmod -s -K "project.max-shm-memory=(priv,4294967295,deny)" user.oracle
projmod -s -K "project.max-shm-ids=(priv,100,deny)" user.oracle

To check the project settings:

# prctl -i project user.oracle