10

How do I enable transparent huge pages by default on 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
Nimantha
  • 6,405
  • 6
  • 28
  • 69
Daniel
  • 1,861
  • 1
  • 16
  • 24
  • 10
    In `sudo echo always > enabled`, the I/O redirection runs as the current user, not root. Try `sudo bash -c "echo always > enabled"`. – Dr Kitty Apr 18 '13 at 00:19
  • 1
    @DrKitty I wish you had given this as an official Answer so I could vote it up! – Daniel Sep 06 '13 at 15:12
  • 1
    You can also use `echo always | sudo tee /sys/kernel/mm/transparent_hugepage/enabled`. Can't remember where I saw it being used that way, but it beats `sudo su -c "..."` IMHO. I added as a comment because this is a runtime setting, Rancor has provided the right answer for setting it as default. – tdaitx Oct 08 '14 at 16:40
  • @DrKitty if you make u make ur answer an answer i'll upvote it – Jose Martinez Mar 06 '15 at 06:44
  • The command line "sudo echo always > enabled" should be : sudo sh -c "echo always > enabled" – Rachid K. Dec 19 '20 at 21:13

3 Answers3

21

Adding the following:

transparent_hugepage=always

to GRUB_CMDLINE_LINUX_DEFAULT in your:

/etc/default/grub

and doing a:

update-grub

should do the trick.

5
sudo su
password: [....]
echo always > /sys/kernel/mm/transparent_hugepage/enabled 
Joel
  • 4,732
  • 9
  • 39
  • 54
Lee
  • 331
  • 3
  • 3
  • 2
    Beware that doing this will only enable THP until the next reboot. The question was how to enable it by _default_, for which @Rancor answer is the right one. – tdaitx Oct 08 '14 at 16:49
1

Add this to your /etc/rc.local:

echo always > /sys/kernel/mm/transparent_hugepage/enabled

egors
  • 55
  • 5