I need to setup a Oracle Database 12c with 64GB RAM on Linux RedHet. I decided to use huge pages. Something must have went wrong. Altertlog:
WARNING: Heavy swapping observed on system in last 5 mins. pct of
memory swapped in [0.42%] pct of memory swapped out [1.82%]. Please
make sure there is no memory pressure and the SGA and PGA are
configured correctly. Look at DBRM trace file for more details.
Supported system pagesize(s): PAGESIZE AVAILABLE_PAGES EXPECTED_PAGES ALLOCATED_PAGES ERROR(s)
4K Configured 10 8192010 NONE
2048K 15946 16001 0 NONE
Seems like the Database is not using the huge pages? What could be the issue?
Update:
grep Huge /proc/meminfo
AnonHugePages: 40960 kB
HugePages_Total: 16001
HugePages_Free: 16001
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Best Answer
The steps I did to setup this hugepage configuration on ReDHat 7.3 64GBRAM and the mistake. (Link from oracle base posted above provides a better Manual for reuse) Check total RAM of OS:
Check Oracle Database – AMM needs to be off: MEMORY_TARGET und MEMORY_MAX_TARGETneed to be set to zero.
Calculate SGA size, for example 32GB:
Calculate Huge Pages, for a x86_64 Red Hat Enterprise Linux Server we can use a default 2MB hugepagesize:
This need to be set in /etc/sysctl.conf as root:
Also we need to set the /etc/security/limits.conf. This value hard and soft memlock should be greater than the the SGA and smaller than the total RAM.
Setting memlock to a lower value then SGA leads to unpredictable behavior of the Oracle Database. As commented above Oracle Database will allocate memory without using the huge pages. In my case this leaded to fatal errors when using impdp. Datapump did not provide errors which made sense.
For RedHat we also need to turn off Transparent Hugepages
Reboot System and start Oracle Database check: