0%

CentOS7 关闭透明大页面

很多服务都需要 Linux 关闭透明大页面特性,如 Hadoop、ElasticSearch 等一些大数据组件或数据库等,以下是 CentOS7 开机自动关闭透明大页面方法。

临时关闭

临时关闭,重启后失效。

1
2
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

开机自动关闭 rc.local

很多网文介绍,将临时关闭的命令写入 /etc/rc.local,但一定要注意 CentOS7 的 rc.local 默认需要修改权限才会执行。

1
2
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

可通过 cat /sys/kernel/mm/transparent_hugepage/enabled 来进行验证。

开机自动关闭服务化

这里提供另一个将脚本注入到启动服务的方法,新建一个服务配置:

1
vi /etc/systemd/system/disable-thp.service

内容如下:

1
2
3
4
5
6
7
8
9
[Unit]
Description=Disable Transparent Huge Pages (THP)

[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"

[Install]
WantedBy=multi-user.target

reload,配置开机自启动:

1
2
3
systemctl daemon-reload
systemctl start disable-thp
systemctl enable disable-thp

重启后进行验证:

1
2
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag