RE: Question about hugepages, shared memory, and /dev/shm....

  • From: <rajendra.pande@xxxxxxx>
  • To: <Mark.Bobak@xxxxxxxxxxxx>, <oracle-l@xxxxxxxxxxxxx>
  • Date: Wed, 16 Apr 2014 11:57:58 -0400



Maybe the Doc ID 1134002.1 clarifies this a bit. Not sure - just my

Quoting. (italics are mine) 


-       If AMM is enabled and Linux hugepage's are enabled as well, then
AMM will 
override Linux hugepage's usage.

-       *

The Automatic Memory Management (AMM) and HugePages are not compatible.
With AMM the entire SGA memory is allocated by creating files under
/dev/shm. When Oracle Database allocates SGA that way HugePages are not
reserved. You must disable AMM on Oracle Database 11g to use HugePages.

From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Mark Bobak
Sent: Wednesday, April 16, 2014 11:47 AM
To: oracle-l@xxxxxxxxxxxxx
Subject: Question about hugepages, shared memory, and /dev/shm....


Hi All,


So, I thought I really understood this stuff, but I'm a little baffled
here, and I wonder if anyone can offer me a clue?


Here's what I (think I) know:

1.)  AMM (setting memory_target) is *not* compatible with a hugepages
configuration.  Any attempt to use hugepages will lock out the memory
allocated to hugepages and AMM will only use non-hugepage memory
allocations, the effect of which would be like removing the huge page
allocated memory from the system.

2.)  ASMM (setting sga_target and pga_aggregate_target) and MMM
(manually setting db_cache_size and pool sizes) *are* compatible with a
hugepages configuration, and for any non-trivially sized SGA, hugepages
is strongly recommended.

3.)  If hugepages are *not* configured, and AMM is used, memory segments
will be mapped in /dev/shm.

4.)  If hugepages *are* used, no memory segments will be visible in


So, that's what I think is true about memory configuration and hugepages


That seems to be consistent throughout our environment, which mostly has
ASMM or MMM and hugepages configuration.


However, and this is where my confusion comes in, we have several eBS
environments, which seem to have a valid and active hugepages
configuration, are using ASMM (not AMM), and *still* I can see memory
segments allocated in /dev/shm??  Any idea how this is possible?


Here's an example from our preprod environment:

(Content was too long for Oracle-L, so here's a paste bin URL)


So, I'm a little baffled here.  I thought these were mutually exclusive


Note also that the timestamps on the /dev/shm segments is *after*
instance startup time, so, I don't think these are "orphan" memory


Anyone out there can clue me in?





Please visit our website at 
for important disclosures and information about our e-mail 
policies. For your protection, please do not transmit orders 
or instructions by e-mail or include account numbers, Social 
Security numbers, credit card numbers, passwords, or other 
personal information.

Other related posts: