如何在 CentOS 上禁用透明大页面

你好呀!我想向您展示如何在 CentOS 7 上禁用透明大页面。您可能会问的第一个问题 - 为什么您甚至想要禁用透明大页面 (THP)?好吧,当您将服务器用于数据库目的并且您拥有 MySQL、Oracle 或 MongoDB 等工具时,建议出于性能目的禁用 THP。

如何检查 THP 是否启用?

为了测试 THP,您需要检查两个文件:

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

方括号[]中的值是当前有效值。如果你有[never]这意味着透明的大页面被禁用。如果您有[always]- THP 已启用。

如何手动禁用 THP?

如果要禁用 THP,可以通过键入以下两个命令手动执行此操作:

echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag

您可以再次对文件进行分类以查看值是否更改为[never]

如何自动禁用 THP?

在您重新启动服务器之前,上述方法工作正常。它将在系统重新启动时打开。为了在系统启动时禁用它们,您需要使用将禁用 THP 的脚本添加单元文件。

创建以下文件:

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

并粘贴以下内容:

[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

保存文件并重新加载 SystemD 守护进程:

sudo systemctl daemon-reload

您可以启动脚本并在启动级别启用它:

sudo systemctl start disable-thp
sudo systemctl enable disable-thp
posted @ 2022-06-16 11:03  雪竹子  阅读(532)  评论(0编辑  收藏  举报