THP关闭方法-Transparent Pages
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]
include=virtual-guest
[vm]
transparent_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]才可以。这个是不用重启机器。
以上是关于THP关闭方法-Transparent Pages的主要内容,如果未能解决你的问题,请参考以下文章
redis启动后出现"WARNING you have Transparent Huge Pages (THP) support enabled in your kernel"问题
THP Transparent HugePages 相关知识与关闭
Linux透明大页(Transparent Huge Pages)对ES性能对影响