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