Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Shared Memory Segments on Solaris 2.5.1

Re: Shared Memory Segments on Solaris 2.5.1

From: M Huneycutt <mhuneycu_at_bellatlantic.net>
Date: Tue, 02 Nov 1999 14:28:14 GMT
Message-ID: <2yCT3.202$K5.31548@typhoon2.gnilink.net>


Dave,

Setting these values to large values is ok, because the system does not reserve these resources, they just create structures that could manage these resources. So let's discuss what they mean:

SHMMAX is the maximum shared memory segment can be. So if you set this to 50MB and your SGA uses 100MB, then when you do an ipcs -b you will see two shared memory segments for that Oracle instance. However if you set this parameter to 100MB then you will only see 1 shared memory segment. If you set SHMMAX to 200MB Oracle will still only allocate 100MB. Basically you want the this Parameter to be as larger or larger than your largest Oracle SGA. Typically, if you set this parameter correctly you will not need to change the other SHM parameters. But just to go over a few of the others, SHMMIN is the minimum segment size, which I have never adjusted, because I seen no need to. The SHMMNI is the maximum shared memory identifiers, this limits that number of Shared memory segments at the over all system level, and unless you have 10 SGAs each using 10 segments you will not need to worry about this parameter, 100 is good. SHMSEG which is the max shared memory segments you can have per process, would not need to be changed if you set SHMMAX to the size of your largest SGA, because you will only have 1 Segment per process ever, unless you increase you SGA to be larger than SHMMAX.

SEMMNS is the maximum number of semaphores, and this parameter corresponds to the init.ora parameter processes. To set this parameter you have to calculate the number of processes for each Oracle instance you will have up on the system as follows (processes+10), some formulas will say 5, but I always add 10 for safety. Then add the number of process for each instance together and now you have the maximum number of semaphores for Oracle. You will add that to the number of semaphores needed for the system and this is what you set the SEMMNS to. Example 2 Oracle Instances 1 will has processes set to 100 and the other has processes set to 50. The system requires 25 semaphores. So we have (100+10)+(50+10)+25 = 195 so round to 200. The SEMMNI, SEMMNU parameters you may have to play with. They are related to how much rollbacking you do, and there have been times I have had to set them as high
as the number of semaphores or higher, but this is on a Sequent. I have not had to heavily adjust them on Sun, HP or AIX. I hope this helps.

Mike H.

Dave wrote in message <7vmkf5$itd$1_at_lure.pipex.net>...
>Can anyone advise on the most efficient settings for
>Shared Memory Segments on Solaris 2.5.1 and Oracle 7.3.3
>Sparc Centre 2000 with 4 cpu's and 256MB ram.
>The installation manual for Oracle has recommended values but
>does not indicate whether these are dependant on your physical
>ram.
>
>Installation manual
>SHMMAX 8388608
>SHMMIN 1
>SHMMNI 100
>SHMSEG 10
>SEMMNS 200
>SEMMNI 70
>
>
>
>Dave
>
>
>
Received on Tue Nov 02 1999 - 08:28:14 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US