禁用透明HugePages


1.檢查是否已啓用Transparent HugePages
紅帽企業Linux內核:

# cat /sys/kernel/mm/redhat_transparent_hugepage/enabled


其他內核:

# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never  <<---- [always]標誌 THP is enabled 
如果從內核中刪除Transparent HugePages,則既不存在/sys/kernel/mm/transparent_hugepage
也不/sys/kernel/mm/redhat_transparent_hugepage files存在。


2.禁用透明HugePages:

OL 7:

1.編輯tuned.conf
[root@prodb ~]# uname -r
4.1.12-112.16.4.el7uek.x86_64
[root@prodb ~]# cat /sys/kernel/mm/transparent_hugepage/enabled 
always madvise [never]

[root@prodb ~]# cd /usr/lib/tuned/throughput-performance/
[root@prodb ~]# cp tuned.conf tuned.conf.bak
[vm]
 transparent_hugepages=always
 to 
[vm]
transparent_hugepages=never
2.重啓
# shutdown -r now
3.校驗
[root@prodb ~]# uname -r
4.1.12-112.16.4.el7uek.x86_64
[root@prodb ~]# cat /sys/kernel/mm/transparent_hugepage/enabled 
always madvise [never]  <<--- THP Disabled
# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.1.12-112.16.4.el7uek.x86_64 .... transparent_hugepage=never
如果未生效,按如下方法設置:
1.檢查profile
# tuned-adm active
Current active profile: virtual-guest <<--- Virtual-guest is the active profile
2.修改tuned.conf
#cp /usr/lib/tuned/virtual-guest/tuned.conf /usr/lib/tuned/virtual-guest/tuned.conf.bkp_original
增加以下內容:
[main]
include=throughput-performance
[vm]
transparent_hugepages=never
3.重啓
# shutdown -r now
4.校驗
[root@prodb ~]# uname -r
[root@prodb ~]# cat /sys/kernel/mm/transparent_hugepage/enabled 
# cat /proc/cmdline


RHEL 7:

1.編輯grub.conf
在GRUB_CMDLINE_LINUX末尾添加transparent_hugepage=never 
#vim /etc/default/grub
GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap ... transparent_hugepage=never"
2.Rebuild grub
On BIOS-based machines: ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
On UEFI-based machines: ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
3.reboot
# shutdown -r now
4.校驗
# cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-4.1.12-112.16.4.el7uek.x86_64 .... transparent_hugepage=never
如果未生效,按如下方法設置:
1.檢查profile
# tuned-adm active
2.自定義profile
# mkdir /etc/tuned/myprofile-nothp
# cat /etc/tuned/myprofile-nothp/tuned.conf
[main]
include= throughput-performance
[vm]
transparent_hugepages=never
3.激活配置文件
# chmod +x /etc/tuned/myprofile-nothp/tuned.conf
# tuned-adm profile myprofile-nothp
4.重啓校驗
# shutdown -r now
# cat /sys/kernel/mm/transparent_hugepage/enabled
5.關閉服務
# systemctl stop tuned
# systemctl disable tuned
# systemctl stop ktune
# systemctl disable ktune
或者
# tuned-adm off
THP status in other UEK kernel versions
UEK3 disabled by default  
[root@ol6 ~]# grep -i CONFIG_TRANSPARENT_HUGEPAGE /boot/config-3.8.13-118.6.2.el6uek.x86_64
# CONFIG_TRANSPARENT_HUGEPAGE is not set  
UEK4 enabled by default
[root@ol7 ~]# grep -i CONFIG_TRANSPARENT_HUGEPAGE /boot/config-4.1.12-37.2.2.el7uek.x86_64
CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y


RHEL 6或更低版本

啓用狀態爲[always]
# cat /sys/kernel/mm/[hedhat_]transparent_hugepage/enabled
[always] never
或者查詢以下內容
# grep AnonHugePages /proc/meminfo
AnonHugepages: xxxx kB
要求XXXX>0
禁用狀態爲[never]
# cat /sys/kernel/mm/[hedhat_]transparent_hugepage/enabled
always [never]
禁用huge
1.編輯grub.conf 
#vi  /etc/grub.conf 
kernel /vmlinuz-2.6.32-300.25.1.el6uek.x86_64 ro root=LABEL=/ transparent_hugepage=never
或者
#vi /etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
2.重啓生效


引用:

ALERT: Disable Transparent HugePages on SLES11, RHEL6, RHEL7, OL6, OL7, and UEK2 and above (文檔 ID 1557478.1)  
NOTE:2066217.1 - Oracle Linux 7 - How to disable Transparent HugePages for RHCK kernel?  
(How to disable transparent hugepages (THP) on Red Hat Enterprise Linux 7)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章