This discussion is archived
6 Replies Latest reply: Aug 29, 2013 6:36 PM by Srini Chavali-Oracle RSS

SHMMAX Sizing with Oracle Automatic Memory Management (AMM)

user10437903 Newbie
Currently Being Moderated

I have a question below and some reference information that I have collected.


ENVIRONMENT

 

Three Node RAC Cluster
Single Database
Oracle Linux 5 Update 2
Oracle Grid Infrastructure 11gR2 (11.2.0.2.0)
- Oracle Automatic Storage Management 11gR2 (11.2.0.2.0)
Oracle Database 11gR2 (11.2.0.2.0) Enterprise Edition with RAC option
RAM  Currently: 16 Gb  Soon to be Upgraded to: 32 Gb


DEFINITION

 

Kernel parameter controlling maximum size (in bytes) of one shared memory segment.


ORACLE REFERENCES

 

Doc ID 567506.1  Maximum SHMMAX values for Linux x86 and x86-64

Oracle Global Customer Support officially recommends a " maximum" for SHMMAX of "1/2 of physical RAM".

The maximum size of a shared memory segment is limited by the size of the available user address space. On 64-bit systems, this is a theoretical 2^64bytes. So the "theoretical limit" for SHMMAX is the amount of physical RAM that you have.  However, to actually attempt to use such a value could potentially lead to a situation where no system memory is available for anything else.  Therefore a more realistic "physical limit" for SHMMAX would probably be "physical RAM - 2Gb".

In an Oracle RDBMS application, this "physical limit" still leaves inadequate system memory for other necessary functions. Therefore, the common "Oracle maximum" for SHMMAX that you will often see is "1/2 of physical RAM". Many Oracle customers chose a higher fraction, at their discretion.

Occasionally, Customers may erroneously think that that setting the SHMMAX as recommended in this NOTE limits the total SGA.   That is not true.  Setting the SHMMAX as recommended only causes a few more "shared memory segments" to be used for whatever total SGA that you subsequently configure in Oracle. For additional detail, please see


NON-SOURCED FINDINGS


* SHMMAX should be larger than the largest SGA.
* It is optimal for SGA to fit within 1 shared memory segment.

 

QUESTION(S)


1)   The SHMMAX should be larger than the largest SGA and a maximum of 1/2 of physical RAM.
     If we are using Automatic Memory Management (AMM) then it may be possible that the SGA will grow.
     What is the best way to address this when sizing SHMMAX?
    
Thanks.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points