默认情况下,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.