When running a MongoDB instance, it’s always important and even recommended to disable Transparent Huge Pages. Database workload can be poor when THP is enabled.

Service File

This service will allow you to disable THP during startup.

Create the service file we’ll use.

sudo touch /etc/systemd/system/mongodb-thp-never.service

Edit the file and insert the text below, your service name may be different, check /etc/systemd/system to be sure.

[Unit]
Description="Disable THP before MongoDB boots"
Before=mongod.service     

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/enabled'
ExecStart=/bin/bash -c 'echo never > /sys/kernel/mm/transparent_hugepage/defrag'

[Install]
WantedBy=mongod.service

Enable Service

Now that we have the service file created we can enable the service and start it.

Reload the daemon

sudo systemctl daemon-reload

Activate the file

sudo systemctl enable mongodb-thp-never.service

Start the service

sudo systemctl start mongodb-thp-never.service

MongoDB - Disabling Transparent Huge Pages Ubuntu 16.04 - 1

Check your defrag file to see if the changes took effect.

MongoDB - Disabling Transparent Huge Pages Ubuntu 16.04 - 2

That’s it! You will need to restart your MongoDB service for this to take effect.