THP Transparent HugePages
Recently, we encountered a case where the LINUX system memory was relatively large and HugePages was not enabled, and the number of ORACLE connections increased dramatically to thousands due to service changes. PageTables reached hundreds of GB, resulting in insufficient memory and HANG of the system.
Therefore, you must enable HugePages. The operating system is oel6. LINUX versions: Red Hat Enterprise Linux 6, SUSE Linux Enterprise Server 11, and Oracle Linux 6 with earlier releases of Oracle Linux Unbreakable Enterprise Kernel 2 (UEK2) kernels. transparent HugePages is enabled by default. Therefore, in these versions of LINUX, it is strongly recommended that you disable Transparent HugePages when you enable HugePages in ORACLE.
In LINUX of the following versions, Transparent HugePages is disabled by default -- removed from the kernel.
Transparent HugePages memory is disabled in later releases of Oracle Linux UEK2 kernels.
The verification method is as follows:If the following file does not exist, THP has been removed from the kernel.
/sys/kernel/mm/transparent_hugepage
Or/sys/kernel/mm/redhat_transparent_hugepage
Refer to the MOS documentation: ALERT: Disable Transparent HugePages on SLES11, RHEL6, OL6 and UEK2 Kernels (Document ID 1557478.1)
Or the following OEL documents:
Https://docs.oracle.com/cd/E11882_01/install.112/e41961/memry.htm#CWLIN385
C.3 Disabling Transparent HugePages
Transparent HugePages memory is enabled by default with Red Hat Enterprise Linux 6, SUSE Linux Enterprise Server 11, and Oracle Linux 6 with earlier releases of Oracle Linux Unbreakable Enterprise Kernel 2 (UEK2) kernels.Transparent HugePages memory is disabled in later releases of Oracle Linux UEK2 kernels.
Transparent HugePages can cause memory allocation delays during runtime. To avoid performance issues,Oracle recommends that you disable Transparent HugePages on all Oracle Database servers.Oracle recommends that you instead use standard HugePages for enhanced performance.
Transparent HugePages memory differs from standard HugePages memory because the kernel khugepaged thread allocates memory dynamically during runtime. Standard HugePages memory is pre-allocated at startup, and does not change during runtime.
O check if Transparent HugePages memory is enabled, run one of the following commands as
root
User:
Red Hat Enterprise Linux kernels:
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
Other kernels:
# cat /sys/kernel/mm/transparent_hugepage/enabled
The following is a sample output that shows Transparent HugePages memory being used as[always]
Flag is enabled.
[always] never
Note:
If Transparent HugePages is removed from the kernel, then/sys/kernel/mm/transparent_hugepage
Or/sys/kernel/mm/redhat_transparent_hugepage
Files do not exist.
To disable Transparent HugePages, perform the following steps: