联系:手机/微信(+86 17813235971) QQ(107644445)
标题:ALERT: Disable Transparent HugePages on SLES11, RHEL6, OEL6 and UEK2 Kernels
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
随着去ioe的潮流越来越汹涌,随着内存越来越便宜,使用Liunx大内存跑核心业务的系统越来越多。因为大内存,多会话,使得配置HugePages也成了必然的选择,在以前的文章中介绍过怎么去配置HugePages(Liunx系统中Oracle使用HugePages配置)以及因为没有配置Hugepage导致的故障(因未配置Hugepage会话数添增悲剧案例).但是随着Linux 6(RedHat 6, OEL 6, SLES 11 and UEK2 kernels等)的广泛应用,他们所在HugePages方面所具有的新特性(Transparent HugePages)很多人可能还没有注意到,Oracle强烈建议无论是rac还是单实例都关闭该特性.
检查是否启用Transparent HugePages方法
To check if the Transparent HugePages are enabled in your server execute the following: Default/Enabled setting is [always]: # cat /sys/kernel/mm/transparent_hugepage/enabled [always] never Disabled setting is [never]: # cat /sys/kernel/mm/transparent_hugepage/enabled always [never] If "enabled" is NOT set to "[never]", the Transparent HugePages are being used. You can also issue: # grep AnonHugePages /proc/meminfo If the output contains a line like "AnonHugepages: xxxx kB", with a value > 0kB the kernel is using Transparent HugePages.
禁用Transparent HugePages方法
Add the following to the kernel boot line in /etc/grub.conf (this is the preferred method) and reboot the server: transparent_hugepage=never Once modified the line will read similar to the following 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 OR Add the following lines in /etc/rc.local and reboot the server: if test -f /sys/kernel/mm/transparent_hugepage/enabled; then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag; then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi
具体见文档:ALERT Disable Transparent HugePages on SLES11 RHEL6 OEL6 and UEK2 Kernels(Doc ID 1557478.1)