Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Shared Memory Segments on Solaris 2.5.1
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