从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