Many kernel parameters have been replaced by so called resource
controls in Solaris 10. It is possible to change resource controls using the prctl
command. All shared memory and semaphore settings are now handled via resource controls, so
any entries regarding shared memory or semaphores (shm & sem) in /etc/system will be ignored.
Here is the procedure we followed to modify the kernel parameters on
Solaris 10 / Oracle 10.2.0.2.
Unlike earlier releases of Solaris, most of the system parameters
needed to run Oracle are already set properly, so the only one you need is the maximum
shared memory parameter. In earlier versions this was called SHMMAX and was set by
editing the /etc/system file and rebooting. With Solaris 10
you set this by modifying a «Resource Control Value». You can do this
temporarily by using prctl, but that is lost at reboot so you will need to
add the command to the oracle user's .profile.
The other option is to create a default project for the oracle
user.
# projadd -U oracle -K \
"project.max-shm-memory=(priv,4096MB,deny)" user.oracle
What this does:
- Makes a project named "user.oracle" in /etc/project with the user oracle as it's only
member.
# cat
/etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10:::: user.oracle:100::oracle::project.max-shm-memory
=(priv,4294967296,deny)
- Because the name was of the form "user.username" it becomes
the oracle user's default project.
- The value of the maximum shared memory is set to 4GB, you might
want to use a larger value here if you have more memory and swap.
- No reboot is needed, the user will get the new value
at their next login.
Now you can also modify the max-sem-ids Parameter:
# projmod -s -K
"project.max-sem-ids=(priv,256,deny)" \
user.oracle
Check the Paramters as User oracle
$ prctl -i project user.oracle
project: 100: user.oracle
NAME PRIVILEGE
VALUE FLAG ACTION RECIPIENT
project.max-contracts
privileged
10.0K -
deny -
system 2.15G
max deny -
project.max-device-locked-memory
privileged
125MB -
deny -
system 16.0EB
max deny -
project.max-port-ids
privileged
8.19K -
deny -
system 65.5K
max deny -
project.max-shm-memory
privileged
4.00GB -
deny -
system 16.0EB
max deny -
project.max-shm-ids
privileged
128 -
deny -
system 16.8M
max deny -
project.max-msg-ids
privileged
128 -
deny -
system 16.8M
max deny -
project.max-sem-ids
privileged
256 -
deny -
system 16.8M
max deny -
project.max-crypto-memory
privileged
498MB -
deny -
system 16.0EB
max deny -
project.max-tasks
system 2.15G
max deny -
project.max-lwps
system 2.15G
max deny -
project.cpu-shares
privileged
1 -
none -
system 65.5K
max none -
zone.max-lwps
system 2.15G
max deny -
zone.cpu-shares
privileged
1 -
none -
|