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)