How to permanently turn off THP (transparent hugepage)

April 7, 2015 3.6k views
Linux Commands MongoDB CentOS

I created a droplet with centos 7. In order to let MMS ( manage my mongodb without warning about THP, I did following:

edit /etc/default/grub to add transparent_hugepage=never to GRUB_CMDLINE_LINUX_DEFAULT

run grub2-mkconfig

systemctl stop tuned

systemctl disable tuned


after reboot I check it with cat /sys/kernel/mm/transparent_hugepage/enabled. Still get [always]. Seems some other services enable it.

How can I permanently disable THP? I also want to disable THP defrag

I don't want to do it in rc.local as it runs after other services including mongod which will be installed later by MMS.

I don't want to say goodbye to DO and return to AWS

1 Answer

As mentioned in the blogpost linked by markfinkelstein, at DO we add this to rc.local:

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

Though if you need to do it another way, the MongoDB documentation provides an init script for this. Of course you could adapt that into a systemd service file, but as systemd can handle legacy init scripts, this is a good cross platform alternative.

Have another answer? Share your knowledge.