Ich erhalte die folgende Warnung von Mongodb über 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'
Aber ich habe es geschafft, THP manuell auszuschalten
frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
frederick@UbuntuVirtual:~$ cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
Ich habe den Trick durch Zugabe transparent_hugepage=never
zu GRUB_CMDLINE_LINUX_DEFAULT
in /etc/default/grub
und Hinzufügen
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
zu /etc/rc.local
Wie um alles in der Welt kann ich die Warnung vermeiden?
linux
mongodb
linux-kernel
Frederick Zhang
quelle
quelle
sudo service mongod restart
und die Warnung war einfach weg! Vielen Dank! Das ist seltsam. Warum kann ich die VM nicht einfach neu starten?Antworten:
Die offizielle MongoDB-Dokumentation bietet verschiedene Lösungen für dieses Problem. Sie können auch diese Lösung ausprobieren , die für mich funktioniert hat:
Hinweis: Versuchen Sie es mit offiziellen Dokumentationsanweisungen, wenn die MongoDB-Version größer als 3.0 ist
/etc/init.d/mongod
Datei öffnen .(Wenn Sie keine solche Datei überprüfen könnten
/etc/init.d/mongod
,/etc/init/mongod.conf
Dateien - Gutschrift: die folgenden Kommentare)Fügen Sie die folgenden Zeilen unmittelbar nach
chown $DAEMONUSER /var/run/mongodb.pid
und vor hinzuend script
.mongod
(service mongod restart
).Hier sind die Zeilen, die hinzugefügt werden müssen
/etc/init.d/mongod
:Das ist es!
quelle
MongoDB hat seine Empfehlung zur Verwendung eines init.d- Skripts jetzt aktualisiert : http://docs.mongodb.org/master/tutorial/transparent-huge-pages/
quelle
Für Ubuntu 14.04 mit upstart:
Da wir Maschinen mit Ansible bereitstellen, mag ich es nicht, RC-Dateien oder GRUB-Konfigurationen zu ändern.
Ich habe versucht,
sysfsutils
/ zu verwendensysfs.conf
, bin jedoch beim Starten der Dienste auf schnellen (oder langsamen) Computern auf Zeitprobleme gestoßen. Es sah so aus, als ob manchmal Mongod vor Sysfsutils gestartet wurde. Manchmal hat es funktioniert, manchmal nicht.Da Mongod ein Upstart-Prozess ist, stellte ich fest, dass die sauberste Lösung darin bestand, die Datei
/etc/init/mongod_vm_settings.conf
mit dem folgenden Inhalt hinzuzufügen :Dadurch wird das Skript ausgeführt, kurz bevor mongod gestartet wird. Mongod neu starten (
sudo service mongod restart
) neu und fertig.quelle
Öffnen Sie / etc / default / grub
sudo vi / etc / default / grub
Aktualisieren
GRUB_CMDLINE_LINUX_DEFAULT = "" auf GRUB_CMDLINE_LINUX_DEFAULT = "transparent_hugepage = never"
: wq (in vi)
Führen Sie update-grub aus
sudo update-grub
Starten Sie die Maschine neu
Update: Wenn Sie einen virtuellen Hosting-Anbieter verwenden, funktioniert dies, wenn der IFF-Grub-Boot unterstützt wird. DigitalOcean unterstützt keinen Grub-Boot.
quelle
Verifiziert, dass die Defragmentierung ohne Rücksicht auf die aktivierte Option überprüft wird:
Daher besteht die Lösung für diesen Fehler darin, zuerst transparent_hugepage / enabled zu überprüfen. Wenn dies niemals der Fall ist, sollten Sie sich nicht die irrelevante Einstellung transparent_hugepage / defragmentieren.
Quelle .
quelle
Ubuntu 16.04 mit systemd:
systemctl edit mongod
Fügen Sie Folgendes ein:
quelle