12-10-2002
I don't know exactly what you are looking for but this may help a bit.
SEMMNI - Processes that use semaphores often group all their semaphores together in a set so they can manage them as 1 unit. Sometimes processes will have many sets, but often they only have one. If I remember correctly on Sun, if you request a semaphore you must put it in a set. In other words you cannot have a semaphore and no semaphore set. So semmni defines how many sets the system can allocate at one point in time.
SEMMNS - Here is a very bad joke we have at work: What is a Semaphore? Haulin' stuff. I know it's bad. Really a semaphore is used to ensure your process is the only process updating a piece of data. This is to ensure you and I don't both try to update the same data at the same time. Who would win? SEMMNS defines how many semaphores can be allocated on the system at one time.
One value that is not mentioned below is SEMMAP. This keeps track of unused semaphores. This could cause potential problems for you if you have a high SEMMNS value. Think of semaphores as being resident in one continuous memory space. If Process A requests a semaphore, a chunk of this space is broken off and given to Process A. When Process A is done, in theory it gives the semaphore back to the OS. This isn't always true though. Do an ipcs -a and look for semaphores with "no entry". Anyway, when the chunk is given back to the OS, it's SEMMAP's job to keep track of the available chunks. In this case there would be 2, the one returned from Process A and the rest of the original chunk. Over time the pieces, or fragments, can become numerous. If your semmap value is set to 100 and you end up with 101 fragments, semmap drops 1 because it can only keep track of 100. You do not get that back until you reboot. You can see how this could be a problem over time. In reality, this happens very slowly or never but is something to be aware of if your process requests a semaphore and can't get one.
From memory I do not recall what SEMMSL is. Sorry.
SHMMAX is the largest size one shared memory segment can be. I haven't read the docs for Solaris 9 fully yet as I just installed it on my machine a few weeks ago. Older versions of Solaris would limit this value to 25% of your Real Memory (RAM). So if you had 1 GB of mem, set this to 4G, the largest segment that could ever be allocated on your system is 250 MB. This 25% consists of the total of ALL shared memory segments so your it is not likely you would get 250 MB for 1 process as some will probably be used by another process by the time Oracle comes up. If this is no longer the case in Solaris 9, it leaves room for the concerns RTM mentioned. If Solaris 9 still has the 25% limit, I would not worry much because you are guaranteed to have ~75% of RAM left for 'other stuff'.
SHMMIN should be left at 1. Several pieces of software I have used in the past request shared memory by requesting a segment of size 1, and then releasing it, and asking for a size of 2, etc until it gets to the size it should be. This is a bad implementation in most cases but this way the program can figure out the max segment size it can request based on the last good one it was given. If you have it set higher then 1, the program will request 1 and fail (since it must request at least the minimum). At that point the process will usually fail. I know of no practical reason to change it but others on the forum may. By the way, this is the minimum 'piece' of shared memory a process can request.
SHMMNI is the max number of shared memory segments that can exist on the box at one time. It works similar to the semaphore concept where thier is one continuous memory space for all the shared memory. In your case you are saying it is OK to break this up into no more then 100 pieces.
SHMSEG says a given process can only reques X (10 in your case) shared memory segments. For a multi-process piece of software like Oracle, it could be possible to get more since each process can have 10. Oracle in general will have 1 large one and sometimes a few smaller ones.
The examples you have look fine. You just add them to the end of the /etc/system file and reboot for them to take affect. If nothing else is running on the system you should be fine.
Hope this help someone if it does not help you.
TioTony
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi all
How to change the system parameter (kernel Parameter)
in sun solaris..i wan't to increase the maximum no of user processs.i found it frm sysdef command that it has a value of 3048
i wan't to increase it as smtime while forking a new proceess it,s giving error max limit of user process... (1 Reply)
Discussion started by: Prafulla
1 Replies
2. UNIX for Dummies Questions & Answers
Would someone please help explain what the following kernel settings indicate on HP 11.00. Thanks Kristian.
Parameter Value
maxuprc 10156
nfile 65430
semmni 45185
semmnu 20236
semmns 45315
shmmni 18264 (1 Reply)
Discussion started by: kristian
1 Replies
3. UNIX for Dummies Questions & Answers
Hi all
I am using HPUX 11.00 .its a HP9000 L class server with 1gb ram and dual processor 540Mhz.
i want to know abt the two kernel parameter mentioned below
1)maxdsize
2)maxssize
these two parameter has the default values and it has not been changed once.
as some application on this... (1 Reply)
Discussion started by: Prafulla
1 Replies
4. UNIX for Dummies Questions & Answers
Hello and thank you everyone that has helped guide me in the past.
I need to change the max_thread_proc parameter in order for certain Oracle utilities to function correctly. It is currently set at 64.
I am a dba not an sa so please excuse my lack of knowledge on something that is probably... (7 Replies)
Discussion started by: soestx
7 Replies
5. UNIX for Dummies Questions & Answers
Hello everbody:
I have Sol9, and I need to check its kernekl parameters, do you know how to list them or in which file they can be found.
Thanks in Advance (3 Replies)
Discussion started by: aladdin
3 Replies
6. HP-UX
Hi,
May I pls. know what would be the equivalent kernel parameter in HP-UX for the below Linux kernel parameter.
sysctl kern.ps_showallprocs - This setting in Linux would let users see their own processes in "ps".
Thanks,
Narasimha (1 Reply)
Discussion started by: vnarsim
1 Replies
7. UNIX for Dummies Questions & Answers
Hi All
Need to find kernel parameter values of our UNIX box.
/filesys1/tmp>uname -a
HP-UX hps1_dc B.11.11 U 9000/800 1681349356 unlimited-user license
/filesys1/CDBLprodrun/tmp>
Can anyone help me with the cmd to find kernel parameter values?
Thanks in advance. (1 Reply)
Discussion started by: mhbd
1 Replies
8. HP-UX
Hi.
I wanted to know, that if an issue is coming, where ,on running a load test, the memory of the APP server(unix) increases, but does not come down once the test is over, in that case, does tuning the nk thread paramter help in teleasing of the memory..???
plz answer soon (2 Replies)
Discussion started by: TC123
2 Replies
9. UNIX for Advanced & Expert Users
Hi all,
I have four (4) different UNIX flavours and I want to know whether the following commands are correct with respect to wanting to check on what are my current kernel parameter settings.
I just want to clear the doubts hanging over my head whether the commands below are the right ones... (2 Replies)
Discussion started by: newbie_01
2 Replies
10. UNIX for Advanced & Expert Users
I have solaris 9 system.
I want to change the "tcp_conn_req_max_q" setting in /etc/system.
whats the correct way,
set ndd:tcp_conn_req_max_q=2048
or
set tcp:tcp_conn_req_max_q=2048
thanks (1 Reply)
Discussion started by: chaandana
1 Replies
LEARN ABOUT HPUX
vx_maxlink
vx_maxlink(5) File Formats Manual vx_maxlink(5)
NAME
vx_maxlink - Configure the number of links to a file
SYNOPSIS
VALUE
Specify an integer value.
Minimum
0
Maximum
65534
Default
32767
DESCRIPTION
The tunable is used to configure the number of links possible to a file on VxFS filesystem
As is initialized when system is booted, the changes made to will take effect only from the next system reboot.
EXAMPLES
Set the maximum number of links to a file at 40000:
WARNINGS
All HP-UX kernel tunable parameters are release specific. This parameter may be removed or its meaning may change in the future releases
of HP-UX.
Installation of optional kernel software, from HP or other vendors, may cause changes to tunable parameter values. After installation,
some tunable parameters may no longer be at the default or recommended values. For information about the effects of installation on tun-
able values, consult the documentation for the kernel software being installed. For information about optional kernel software that was
factory installed on your system, see at
SEE ALSO
kctune(1M), vx_ninode(5), vxfs_bc_bufhwm(5), vxfs_ifree_timelag(5).
Tunable Kernel Parameters vx_maxlink(5)