禁用Transparent Huge Pages(THP)可以帮助改善系统的性能和稳定性。这些功能在 Linux 操作系统中可用。
要禁用 THP,请执行以下步骤:
-
检查 THP 是否已启用:可以运行以下命令:
cat /sys/kernel/mm/transparent_hugepage/enabled
如果输出结果为
[always] madvise never
,则 THP 已经开启;如果输出结果为[never] madvise
,则 THP 已经禁用。 -
如果 THP 已启用,请运行以下命令以禁用 THP:
sudo echo never > /sys/kernel/mm/transparent_hugepage/enabled
这将修改配置文件并立即禁用 THP。
-
在
/etc/rc.local
或启动脚本中添加以下行,使 THP 禁用设置永久生效:echo never > /sys/kernel/mm/transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
这将在系统启动时自动应用设置,确保 THP 一直禁用。
请注意,这些步骤可能因为 Linux 的版本和发行版而有所不同。在实施之前,请先确认您的系统是否支持 THP,并确保已备份必要的配置文件和数据。
最佳实践
创建disable-transparent-huge-pages.service
vim /etc/systemd/system/disable-transparent-huge-pages.service
[Unit]
Description=Disable Transparent Huge Pages (THP)
DefaultDependencies=no
After=sysinit.target local-fs.target
Before=mongod.service[Service]
Type=oneshot
ExecStart=/bin/sh -c 'echo never | tee /sys/kernel/mm/transparent_hugepage/enabled > /dev/null'[Install]
WantedBy=basic.target
启动
systemctl daemon-reload
systemctl enable disable-transparent-huge-pages
systemctl start disable-transparent-huge-pages