https://www.coonote.com/linux-note/transparent-hugepages.html
从RedHat 6, OEL 6, SLES 11 and UEK2 kernels 开始,系统缺省会启用 Transparent HugePages :用来提高内存管理
的性能透明大页(Transparent HugePages )和之前版本中的大页功能上类似,主要的区别是:Transparent HugePages 可以实时配置,
不需要重启才能生效配置;
透明大页(Transparent HugePages )主要是利用khugepaged thread,而以前的 大页是通过在系统启动时来预分配实现;
但是,oracle 官方不建议我们使用RedHat 6, OEL 6, SLES 11 and UEK2 kernels 后的 透明大页(Transparent HugePages ),
因为透明大页(Transparent HugePages ) 存在一些问题:
1.在RAC环境下 透明大页(Transparent HugePages )会导致异常节点重启,和性能问题;
2.在单机环境中,透明大页(Transparent HugePages ) 也会导致一些异常的性能问题;
----以红帽6.0 为例:
方法一:
缺省启用:[always] --- 表明启用了透明大页
[root@rhel-6 redhat_transparent_hugepage]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
[always] madvise never
禁用状态:
[root@rhel-6 redhat_transparent_hugepage]# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
always madvise [never]
方法二:
[root@rhel-6 redhat_transparent_hugepage]# grep AnonHugePages /proc/meminfo
AnonHugePages: 143360 kB
如果 AnonHugePages > 0 同样表示启用了透明大页;
----如何禁用透明大页:
方法一(优先选择):
在 /etc/grub.conf 中添加一行记录:
transparent_hugepage=never
然后重启
方法二:
配置/etc/rc.local 然后重启服务器:
if test -f /sys/kernel/mm/redhat_transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/redhat_transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
fi