kernel parameter settings


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers kernel parameter settings
# 1  
Old 12-09-2002
kernel parameter settings

Hello All,

can someone clarify finally what are the kernel parameter settings
for ORACLE9i on SOLARIS9 ?

the following first part is copy paste from the sun's web rquirements
page for the installation


Kernel Parameter
Setting
Purpose
SEMMNI
100
Defines the maximum number of semaphore sets in the entire system.
SEMMNS
1024
Defines the maximum semaphores on the system. This setting is a
minimum recommended value, for initial installation only.

The SEMMNS parameter should be set to the sum of the
PROCESSES parameter for each Oracle database, adding the largest
one twice, and then adding an additional 10 for each database.
SEMMSL
256
Defines the minimum recommended value, for initial installation
only.
SHMMAX
4294967295
Defines the maximum allowable size of one shared memory segment.

4 GB = 4294967295
SHMMIN
1
Defines the minimum allowable size of a single shared memory
segment.
SHMMNI
100
Defines the maximum number of shared memory segments in the
entire system.
SHMSEG
10
Defines the maximum number of shared memory segments one
process can attac


AND THE FOLLOWING PART IS copy paste of another INSTALLATION GUIDE FOR ORACLE
VERSION 9.2..0.1.0
This is what they say:

Add or modify the following parameters, using any higher val
ues if they
already exist on your system. These settings can be placed at the end of the file.

set semsys:seminfo_semmni=100
set semsys:seminfo_semmns=1024
set semsys:seminfo_semmsl=256
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10


Please i will appreciate your time and help if you
can explain what are the right setings and format.

thanks,
# 2  
Old 12-09-2002
Normally you don't tune the kernal for Solaris. It should already be set for it to run correctly. Following the Oracle recommended parameters is also normal to do for setting up Oracle (or any other SQL database) on a SUN server. The only parameter I would disagree with is the following:

set shmsys:shminfo_shmmax=4294967295

Normally in our shop we give 80% to 90% of the memory not the whole thing. More of a 'just in case' way of thinking than it being a scientific tested theory. Realize that Oracle is saying "give it all" and it will use it...so what's left for the OS? Sybase does the same and we do the same to it too. 80-90% but not the whole ball of wax.
# 3  
Old 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
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

TCP Kernel Settings

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

2. UNIX for Advanced & Expert Users

How to check what are the current kernel parameter settings

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

3. HP-UX

nk thread kernel parameter

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

4. UNIX for Dummies Questions & Answers

kernel parameter values

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

5. HP-UX

Equivalent Kernel parameter in 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

6. UNIX for Dummies Questions & Answers

kernel parameter in SOL

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

7. UNIX for Dummies Questions & Answers

How to change a kernel parameter

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

8. UNIX for Dummies Questions & Answers

kernel parameter

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

9. UNIX for Dummies Questions & Answers

kernel settings

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

10. UNIX for Dummies Questions & Answers

kernel parameter

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
Login or Register to Ask a Question