Hi there! I'd like to show you how to disable Transparent Huge Pages on CentOS 7. First question you might ask - why do you even want to disable Transparent Huge Pages (THP)? Well, when you are using your server for database purposes and you have tools like MySQL, Oracle or MongoDB, the recommendation is to disable THP for performance purposes.
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
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