Je reçois l'avertissement suivant de mongodb à propos du 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'
Mais j'ai réussi à désactiver le THP manuellement
frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
Je l' ai fait l'affaire en ajoutant transparent_hugepage=never
à GRUB_CMDLINE_LINUX_DEFAULT
en /etc/default/grub
et en ajoutant
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
à /etc/rc.local
Comment diable puis-je éviter l'avertissement?
linux
mongodb
linux-kernel
Frederick Zhang
la source
la source
sudo service mongod restart
et l'avertissement est parti! Merci! c'est étrange, pourquoi ne puis-je pas simplement redémarrer la VM?Réponses:
La documentation officielle de MongoDB propose plusieurs solutions à ce problème. Vous pouvez également essayer cette solution , qui a fonctionné pour moi:
Remarque: essayez les directives de documentation officielles si la version MongoDB est supérieure à 3.0
Ouvrez le
/etc/init.d/mongod
fichier.(si aucun fichier de ce type, vous pouvez vérifier
/etc/init.d/mongod
,/etc/init/mongod.conf
fichiers - crédit: les commentaires ci-dessous)Ajoutez les lignes ci-dessous immédiatement après
chown $DAEMONUSER /var/run/mongodb.pid
et avantend script
.mongod
(service mongod restart
).Voici les lignes à ajouter
/etc/init.d/mongod
:C'est tout!
la source
MongoDB a mis à jour sa recommandation d'utiliser un script init.d maintenant: http://docs.mongodb.org/master/tutorial/transparent-huge-pages/
la source
Pour Ubuntu 14.04 utilisant upstart:
Puisque nous déployons des machines avec Ansible, je n'aime pas modifier les fichiers rc ou les configurations GRUB.
J'ai essayé d'utiliser
sysfsutils
/sysfs.conf
mais j'ai rencontré des problèmes de synchronisation lors du démarrage des services sur des machines rapides (ou lentes). Il semblait que parfois mongod était lancé avant sysfsutils. Parfois cela fonctionnait, parfois non.Puisque mongod est un processus parvenu, j'ai trouvé que la solution la plus propre était d'ajouter le fichier
/etc/init/mongod_vm_settings.conf
avec le contenu suivant:Cela exécutera le script juste avant le démarrage de mongod. Redémarrez mongod (
sudo service mongod restart
) et c'est fait.la source
Ouvrez / etc / default / grub
sudo vi / etc / default / grub
Mettez à jour
GRUB_CMDLINE_LINUX_DEFAULT = "" vers GRUB_CMDLINE_LINUX_DEFAULT = "transparent_hugepage = never"
: wq (dans vi)
Exécutez update-grub
sudo update-grub
Redémarrer la machine
Mise à jour: Si vous utilisez un fournisseur d'hébergement virtuel, cela fonctionnera IFF grub boot est pris en charge. DigitalOcean NE prend PAS en charge le démarrage grub.
la source
Vérifié que la défragmentation est examinée sans tenir compte de l'activation:
Par conséquent, le correctif de ce bogue est de regarder d'abord transparent_hugepage / enabled, et si ce n'est jamais le cas, ne vous embêtez pas à regarder le paramètre transparent_hugepage / defrag non pertinent.
Source .
la source
Ubuntu 16.04 utilisant systemd:
systemctl edit mongod
Collez ce qui suit:
la source