How to check if THP is enabled or not?
In order to test THP you need to check two files:
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /sys/kernel/mm/transparent_hugepage/defrag
Value in square brackets []
is currently active value. If you have [never]
it means that transparent huge pages are disabled. If you have [always]
– THP are enabled.
How to disable THP manually?
If you want to disable THP you can do it manually by typing these two commands:
echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled
echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag
You can cat the files one more time to see if value is changed to [never]
How to disable THP automatically?
Method above works fine until you restart the server. It will turn on on system restart. In order to disable them on system startup, you need to add Unit file with script that will disable THP.
Create following file:
sudo vi /etc/systemd/system/disable-thp.service
and paste there following content:
[Unit]
Description=Disable Transparent Huge Pages (THP)
[Service]
Type=simple
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"
[Install]
WantedBy=multi-user.target
Save the file and reload SystemD daemon:
sudo systemctl daemon-reload
Than you can start the script and enable it on boot level:
sudo systemctl start disable-thp
sudo systemctl enable disable-thp