默認情況下,Red Hat Enterprise Linux 6,SUSE Linux Enterprise Server 11和Oracle Linux 6以及早期版本的Oracle Linux Unbreakable Enterprise Kernel 2(UEK2)內核啓用了透明HugePages內存。在Oracle Linux UEK2內核的更高版本中禁用透明HugePages內存。
透明HugePages可能會在運行時導致內存分配延遲。爲避免性能問題,Oracle建議您在所有Oracle數據庫服務器上禁用透明HugePages。Oracle建議您使用標準HugePages來提高性能。
要檢查是否已啓用Transparent HugePages內存,請以root
用戶身份運行以下命令之一:
紅帽企業Linux內核:
#cat / sys / kernel / mm / redhat_transparent_hugepage / enabled
其他內核:
#cat / sys / kernel / mm / transparent_hugepage / enabled
以下是一個示例輸出,顯示在[always]
啓用標誌時使用的Transparent HugePages內存。
[always] never
如果從內核中刪除了透明HugePages,則這些 /sys/kernel/mm/transparent_hugepage
or /sys/kernel/mm/redhat_transparent_hugepage 文件不存在。
禁用透明HugePages如下步驟:
-
Add the following entry to the kernel boot line in the
/etc/grub.conf
file:transparent_hugepage=never
For example:
title Oracle Linux Server (2.6.32-300.25.1.el6uek.x86_64) root (hd0,0) kernel /vmlinuz-2.6.32-300.25.1.el6uek.x86_64 ro root=LABEL=/ transparent_hugepage=never initrd /initramfs-2.6.32-300.25.1.el6uek.x86_64.img
-
Restart the system to make the changes permanent.