Вот решение, которое было протестировано для работы с Ubuntu 16.04 на AWS EC2. Ubuntu 16.04 использует systemd init system, и этот файл конфигурации выражает, что эти настройки должны быть изменены до того, как MongoDB загрузится.
Создайте файл с именем /etc/systemd/system/mongodb-hugepage-fix.service и добавьте следующий контент:
[Unit]
Description="Disable Transparent Hugepage before MongoDB boots"
#WARN: check service name on your system
# If you are using MongoDB Cloud, service name is "mongodb-mms-automation-agent.service"
Before=mongodb.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]
#WARN: check service name on your system
# If you are using MongoDB Cloud, service name is "mongodb-mms-automation-agent.service"
RequiredBy=mongodb.service
Чтобы загрузить файл в systemd:
systemctl daemon-reload
Чтобы активировать файл как зависящую от загрузки время MongoDB
systemctl enable mongodb-hugepage-fix
Если вы хотите активировать изменения (до следующей загрузки)
systemctl start mongodb-hugepage-fix
systemctl restart mongod
Это решение не подходит для Ubuntu 14.04, в котором вместо решения systemd используется решение Upstart init.