【问题标题】:How do I enable transparent huge pages by default on Ubuntu?如何在 Ubuntu 上默认启用透明大页面?
【发布时间】:2013-04-10 22:39:52
【问题描述】:

如何在 Ubuntu 上默认启用透明大页面?

~$ uname -a
Linux yoda 3.5.0-23-generic #35~precise1-Ubuntu SMP Fri Jan 25 17:13:26 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
~$ cd /sys/kernel/mm/transparent_hugepage/
/sys/kernel/mm/transparent_hugepage$ ls
defrag  enabled  khugepaged
/sys/kernel/mm/transparent_hugepage$ cat enabled 
always [madvise] never
/sys/kernel/mm/transparent_hugepage$ sudo echo always > enabled 
-bash: enabled: Permission denied
/sys/kernel/mm/transparent_hugepage$ sudo ls
[sudo] password for <...>: 
defrag  enabled  khugepaged
/sys/kernel/mm/transparent_hugepage$ sudo ls
defrag  enabled  khugepaged
/sys/kernel/mm/transparent_hugepage$ sudo echo always > enabled 
-bash: enabled: Permission denied
/sys/kernel/mm/transparent_hugepage$ cat enabled 
always [madvise] never

【问题讨论】:

  • sudo echo always &gt; enabled 中,I/O 重定向以当前用户身份运行,而不是 root。试试sudo bash -c "echo always &gt; enabled"
  • @DrKitty 我希望你把这个作为官方答案,这样我就可以投票了!
  • 您也可以使用echo always | sudo tee /sys/kernel/mm/transparent_hugepage/enabled。不记得我在哪里看到它以这种方式使用,但它胜过sudo su -c "..."恕我直言。我添加为评论是因为这是一个运行时设置,Rancor 提供了将其设置为默认值的正确答案。
  • @DrKitty 如果你让你回答一个答案,我会支持它
  • 命令行“sudo echo always > enabled”应该是:sudo sh -c "echo always > enabled"

标签: ubuntu huge-pages


【解决方案1】:

添加以下内容:

transparent_hugepage=always

到您的 GRUB_CMDLINE_LINUX_DEFAULT:

/etc/default/grub

然后做一个:

update-grub

应该可以解决问题。

【讨论】:

    【解决方案2】:
    sudo su
    password: [....]
    echo always > /sys/kernel/mm/transparent_hugepage/enabled 
    

    【讨论】:

    • 请注意,这样做只会启用 THP,直到下次重新启动。问题是如何通过 default 启用它,@Rancor 的答案是正确的。
    【解决方案3】:

    将此添加到您的 /etc/rc.local:

    echo always &gt; /sys/kernel/mm/transparent_hugepage/enabled

    【讨论】:

      猜你喜欢
      • 2013-08-30
      • 2013-10-28
      • 1970-01-01
      • 2012-10-09
      • 1970-01-01
      • 2019-09-19
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多