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/defragValue 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/defragYou 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.serviceand 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.targetSave the file and reload SystemD daemon:
sudo systemctl daemon-reloadThan you can start the script and enable it on boot level:
sudo systemctl start disable-thp
sudo systemctl enable disable-thp