Я получаю следующее предупреждение от mongodb о THP
2015-03-06T21:01:15.526-0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-03-06T21:01:15.526-0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
Но мне удалось отключить THP вручную
frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
Я сделал трюк, добавив transparent_hugepage=never
к GRUB_CMDLINE_LINUX_DEFAULT
в /etc/default/grub
и добавления
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
к /etc/rc.local
Как я могу избежать предупреждения?
linux
mongodb
linux-kernel
Фредерик Чжан
источник
источник
sudo service mongod restart
и предупреждение исчезло! Спасибо! это странно, почему я не могу просто перезагрузить виртуальную машину?Ответы:
Официальная документация MongoDB предлагает несколько решений этой проблемы. Вы также можете попробовать это решение , которое сработало для меня:
Примечание: попробуйте официальные директивы документации, если версия MongoDB выше 3.0.
Открыть
/etc/init.d/mongod
файл.(если такого файла нет, вы можете проверить
/etc/init.d/mongod
,/etc/init/mongod.conf
файлы - кредит: комментарии ниже)Добавьте строки ниже сразу после
chown $DAEMONUSER /var/run/mongodb.pid
и передend script
.mongod
(service mongod restart
).Вот строки, которые нужно добавить
/etc/init.d/mongod
:Это оно!
источник
MongoDB обновила свою рекомендацию по использованию сценария init.d сейчас: http://docs.mongodb.org/master/tutorial/transparent-huge-pages/
источник
Для Ubuntu 14.04 с использованием выскочки:
Поскольку мы развертываем машины с Ansible, мне не нравится изменять файлы rc или конфигурации GRUB.
Я пробовал использовать
sysfsutils
/,sysfs.conf
но столкнулся с проблемами синхронизации при запуске служб на быстрых (или медленных) машинах. Похоже, иногда mongod запускался раньше sysfsutils. Иногда это срабатывало, иногда нет.Поскольку mongod - это новый процесс, я обнаружил, что самым чистым решением было добавить файл
/etc/init/mongod_vm_settings.conf
со следующим содержимым:Это запустит скрипт непосредственно перед запуском mongod. Перезапустите mongod (
sudo service mongod restart
) и готово.источник
Откройте / etc / default / grub
Судо vi / и т.д. / по умолчанию / grub
Обновите
GRUB_CMDLINE_LINUX_DEFAULT = "" до GRUB_CMDLINE_LINUX_DEFAULT = "transparent_hugepage = never"
: wq (в vi)
Запустите update-grub
sudo update-grub
Перезагрузите машину
Обновление: если вы используете поставщика виртуального хостинга, это будет работать. Поддерживается загрузка IFF grub. DigitalOcean НЕ поддерживает загрузку с помощью grub.
источник
Проверено, что дефрагментация проверяется без учета включенных:
Поэтому исправление этой ошибки - сначала посмотреть на transparent_hugepage / enabled, а если это не так, не беспокойтесь о несоответствующей настройке transparent_hugepage / defrag.
Источник .
источник
Ubuntu 16.04 с использованием systemd:
systemctl edit mongod
Вставьте следующее:
источник