hi friends,
may i know what is semaphores?
how do i find limit and status in solaris 10?
please advise...thanks alot:confused:
hi friends,
may i know what is semaphores?
how do i find limit and status in solaris 10?
please advise...thanks alot:confused:
Semapahores are shared memory objects that multiple processes update to allow communication. They are used for process control - Interprocess Communication, IPC.
A solaris admin type can let you know about shared memory resources and how to set them and see them.
use ipcs:
ipcs -s
thanks guys.but how do i find " the semaphore values that exhausted and
it recommended values? "
The Solaris 10 Operating System introduces the following new resource controls to replace the old /etc/system tunables:
Old Old New New
Resource control tunable default Max value default
---------------------- ------------- ------- --------- ----------
process.max-msg-qbytes msginfo_msgmnb 4096 ULONG_MAX 65536
process.max-msg-messages msginfo_msgtql 40 UINT_MAX 8192
process.max-sem-ops seminfo_semopm 10 INT_MAX 512
process.max-sem-nsems seminfo_semmsl 25 SHRT_MAX 512
project.max-shm-memory shminfo_shmmax 0x800000 UINT64_MAX 1/4 physmem
project.max-shm-ids shminfo_shmmni 100 2**24 128
project.max-msg-ids msginfo_msgmni 50 2**24 128
project.max-sem-ids seminfo_semmni 10 2**24 128
As the names suggest, these rctls are attributes of either processes or projects.
The following tunables are now obsolete in the Solaris 10 Operating System:
Shared Memory Semaphores Message-Queue
-------------- -------------- ---------------
shminfo_shmseg seminfo_semmns msginfo_msgmax
shminfo_shmmin seminfo_semvmx msginfo_msgssz
shminfo_shmmax* seminfo_semmnu msginfo_msgmni*
shminfo_shmmni* seminfo_semaem msginfo_msgtql*
seminfo_semume msginfo_msgmnb*
seminfo_semusz msginfo_msgmap
seminfo_semmap msginfo_msgseg
seminfo_semmsl*
seminfo_semopm*
seminfo_semmni*
values ending in * are technically obsolete, but if they are present
in the /etc/system file then at boot the kernel will translate the
values into global resource controls.
have a look at: "prctl $$"
small example, i will add your process.max-sem-ops:
root@mp-wst01 # su - pressy
pressy@mp-wst01 #
pressy@mp-wst01 # prctl -n process.max-sem-ops $$
process: 16510: -ksh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
process.max-sem-ops
privileged 512 - deny -
system 2,15G max deny -
pressy@mp-wst01 # exit
root@mp-wst01 # projmod -a -K "process.max-sem-ops=(priv,1024,deny)" user.pressy
root@mp-wst01 # su - pressy
pressy@mp-wst01 #
pressy@mp-wst01 # prctl -n process.max-sem-ops $$
process: 16574: -ksh
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
process.max-sem-ops
privileged 1,02K - deny -
system 2,15G max deny -
pressy@mp-wst01 #
should work....
regards PRESSY