如何在 Ubuntu 16.04LTS 中禁用透明大页面 (THP)

Posted

技术标签:

【中文标题】如何在 Ubuntu 16.04LTS 中禁用透明大页面 (THP)【英文标题】:How to disable Transparent Huge Pages (THP) in Ubuntu 16.04LTS 【发布时间】:2017-06-28 11:01:25 【问题描述】:

我正在设置一个带有 3 个运行 Ubuntu 16.04LTS 的 virtualbox VM 的 ambari 集群。但是我收到以下警告:

The following hosts have Transparent Huge Pages (THP) enabled. 
THP should be disabled to avoid potential Hadoop performance issues.

如何在 Ubuntu 16.04 中禁用 THP?

【问题讨论】:

【参考方案1】:

你试过这个命令吗:

sudo su
echo never > /sys/kernel/mm/transparent_hugepage/enabled

?

或者,您可以安装hugepages

sudo su
apt-get install hugepages
hugeadm --thp-never

正如@Anthony 所述,重启后效果不会持续存在。每次重新启动后,使用特定于发行版的方法执行此操作。

【讨论】:

hugepages 命令对我不起作用。我不得不使用hugeadm 请更正hubepages部分,命令为:hugeadm --thp-never【参考方案2】:

安装:

sudo apt install hugepages

然后运行:

sudo hugeadm --thp-never

要保留更改,您可以将最后一条命令添加到 /etc/rc.local

【讨论】:

【参考方案3】:

永久禁用透明大页面 (THP),请选择以下选项中的一个

    通过 GRUB 选项(首选):

    编辑/etc/default/grub 以将transparent_hugepage=never 添加到GRUB_CMDLINE_LINUX_DEFAULT 选项:

     GRUB_CMDLINE_LINUX_DEFAULT="transparent_hugepage=never quiet splash"
    

之后,运行update-grub 命令。 (需要重启才能生效)

    使用 rc.local:

编辑/etc/rc.local并将以下脚本放在exit 0之前

    if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
       echo never > /sys/kernel/mm/transparent_hugepage/enabled
    fi

* 为避免重启(如前所述),您可以通过# echo never > /sys/kernel/mm/transparent_hugepage/enabled 命令禁用它。

【讨论】:

? 可能值得更清楚一点,你只需要做#1或#2,而不是两者都做【参考方案4】:

以下 3 个命令修复了 Ubuntu(14.x/16.x) 上的问题,并使其在系统启动时持续存在。

    sudo apt-get install hugepages sudo hugeadm --thp-never sudo /bin/sed -i '$i /usr/bin/hugeadm --thp-never' /etc/rc.local

【讨论】:

/etc/rc.local 在我的例子中包含 exit 0 作为最后一行。所有脚本都应添加在exit 之前。使用sed 命令代替sudo sed -i '$i hugeadm --thp-never' /etc/rc.local。它将在最后一行之前插入一行。【参考方案5】:

所有这些答案都已过时。尝试了所有这些,并且值不断被覆盖。

这里的指南确实有效​​:https://docs.mongodb.com/manual/tutorial/transparent-huge-pages/

它需要是在启动时正常运行的服务,只需按照本指南进行操作

在 Ubuntu 19.04 上工作,终于抑制了 redis 警告

【讨论】:

也在 Ubuntu 18.04 上工作过。谢谢!

以上是关于如何在 Ubuntu 16.04LTS 中禁用透明大页面 (THP)的主要内容,如果未能解决你的问题,请参考以下文章

在 ubuntu 16.04 LTS 上运行 mongodb

如何在Ubuntu 16.04和14.04 LTS中安装PostgreSQL 9.5

如何从Ubuntu14.04LTS更新到Ubuntu16.04LTS

如何在 Ubuntu 16.04 LTS 64 位上安装/启动 Postman 本机 v4.10.3?

sh 如何在Ubuntu 16.04 LTS - Docker中安装Python 3.6。*

在 Ubuntu Server 16.04 LTS 上安装 LAMP