Re: Oracle creates multiple shared memory segments despite SGA < SHMMAX

From: jgar the jorrible <>
Date: Fri, 6 Mar 2009 13:38:29 -0800 (PST)
Message-ID: <>

On Mar 6, 8:41 am, Mladen Gogala <> wrote:
> On Fri, 06 Mar 2009 05:58:57 -0800, ddf wrote:
> > You're looking in the wrong place, I think, since this server could be
> > configured for non-uniform memory access (NUMA) which would create
> > multiple shared memory segments.  Possibly you should ask your Sys Admin
> > how the box is built; he or she may have the answers you seek.
> Good catch! Now I learned something. Thanks, David!
> --

Also see metalink 747486.1, 784919.1, 761065.1,7685006 says
"When an Oracle Database instance starts, it creates memory segments by dividing the shared memory allocated for creating the Oracle Shared Global Area (SGA) by the value of the HP-UX shmmax kernel parameter. For example, if 64 GB of shared memory is allocated for a single Oracle instance and the value of the shmmax parameter is 1 GB, then Oracle Database creates 64 shared memory segments for that instance.

Performance degradation can occur when an Oracle instance creates multiple shared memory segments. This is because each shared memory segment receives a unique protection key when Oracle Database creates the instance..."

which seems at odds with what the OP is seeing... perhaps a support call would clear up what is happening. My speculation is that MMAN had some problems which were hacked to fix, resulting in oddness like this. Perhaps Sybrand is right, MMAN locking all those memory granules could mean a small number of users would set off swapping Real Soon Now, assuming the 10G implies physical memory.

Or maybe they were trying to be nice about swap, and setting a big SHMMAX conflicts with that:


-- is bogus.
Received on Fri Mar 06 2009 - 15:38:29 CST

Original text of this message