说明
相关文章链接:
为什么要禁用透明大页(Transparent HugePages)
Oracle官方建议在开始安装之前禁用透明大页。
透明大页内存不同于标准的HugePages内存,因为内核khugepaged线程在运行时动态分配内存。标准HugePages内存是在启动时预分配的,在运行时不会改变。
注意:虽然在UEK2和以后的UEK内核上透明大页是禁用的,但是在Linux系统上透明大页可能是默认启用的。
透明大页内存默认支持Red Hat Enterprise Linux 6、Red Hat Enterprise Linux 7、SUSE 11、Oracle Linux 6和Oracle Linux 7,以及Oracle Linux早期版本的Unbreakable Enterprise Kernel 2 (UEK2)内核。
透明大页会在运行时导致内存分配延迟。为了避免性能问题,Oracle建议在所有Oracle数据库服务器上禁用透明大页,并使用标准HugePages来提高性能。
禁用方法
1)检查透明HugePages是否启用:
$ su -
# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled ###RHEL文件路径
# cat /sys/kernel/mm/transparent_hugepage/enabled ###Oracle Linux文件路径
如果输出显示[always]表示已启用,[never]表示已禁用:
[always] never ###说明已启用透明大页
2)禁用透明HugePages
I. Linux 6及更早版本:
在/etc/grub.conf文件中的kernel行最后面添加:transparent_hugepage=never,如:
kernel /vmlinuz-2.6.32-358.el6.x86_64 ro root=/dev/mapper/VolGroup-lv_root intel_iommu=on rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=VolGroup/lv_root rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet transparent_hugepage=never
注:有的是kernel+module的写法,也只用放在“quiet”后面就行。
II. Linux 7及以上版本:
在/etc/defualt/grub.conf文件中的GRUB_CMDLINE_LINUX行添加:transparent_hugepage=never,最后运行grub2-mkconfig
3)重启OS并重新检查