说明
相关文章链接:
Oracle数据库与HugePages(一)HugePages概念和优势: http://blog.itpub.net/69992972/viewspace-2763625/
Oracle数据库与HugePages(二)HugePages配置和限制: http://blog.itpub.net/69992972/viewspace-2764357/
Oracle数据库与HugePages(三)HugePages常见问题和解决办法: http://blog.itpub.net/69992972/viewspace-2764597/
Oracle数据库与HugePages(四)如何禁用透明大页: http://blog.itpub.net/69992972/viewspace-2764784/
为什么要禁用透明大页(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)禁用透明HugePagesI. 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并重新检查
