THP关闭方法-Transparent Pages

#这里只针对CentOs7系统,内核3.10,grub2
#修改/etc/default/grub,在GRUB_CMDLINE_LINUX中添加transparent_hugepage=never,如下
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=system/root rd.lvm.lv=system/swap rhgb quiet transparent_hugepage=never"
grub2-mkconfig -o /boot/grub2/grub.cfg
grub2-mkconfig -o /boot/efi/EFI/centos/grub.cfg
#但是这里有个问题,重启机器后,defrag一直是always,而不是never,但是也不影响使用,
#我还没有弄明白defrag的作用,从字面意思是整理内存碎片的作用,按理说应该不影响使用,但是有问题,重启机器后,又变成never了。
#下面是解决disable THP的推荐方法(机器重启后THP仍旧是关闭的):
#disable-transparent-hugepages脚本内容,放到/etc/init.d/下,
#并授权可执行权限chmod 755 /etc/init.d/disable-transparent-hugepages,并加入开机自启动chkconfig --add disable-transparent-hugepages

#!/bin/bash

case $1 in
          start)
            if [ -d /sys/kernel/mm/transparent_hugepage ]; then
              thp_path=/sys/kernel/mm/transparent_hugepage
            elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
              thp_path=/sys/kernel/mm/redhat_transparent_hugepage
            else
              return 0
            fi

            echo 'never' > ${thp_path}/enabled
            echo 'never' > ${thp_path}/defrag

            re='^[0-1]+$'
            if [[ $(cat ${thp_path}/khugepaged/defrag) =~ $re ]]
            then
              #RHEL 7
              echo 0  > ${thp_path}/khugepaged/defrag
            else
              #RHEL 6
              echo 'no' > ${thp_path}/khugepaged/defrag
            fi

            unset re
            unset thp_path
            ;;
esac


mkdir /etc/tuned/no-thp -p
echo -e "[main]\ninclude=virtual-guest\n[vm]\ntransparent_hugepages=never" >/etc/tuned/no-thp/tuned.conf
tuned-adm profile no-thp

cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
#都是always madvise [never]才可以。这个是不用重启机器。

转载于:https://blog.51cto.com/laodou/2326610

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值