Otrzymuję następujące ostrzeżenie od mongodb o 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'
Ale udało mi się ręcznie wyłączyć 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]
Zrobiłem podstęp dodając transparent_hugepage=never
do GRUB_CMDLINE_LINUX_DEFAULT
w /etc/default/grub
i dodawanie
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
do /etc/rc.local
Jak u licha mogę uniknąć ostrzeżenia?
linux
mongodb
linux-kernel
Frederick Zhang
źródło
źródło
sudo service mongod restart
i ostrzeżenie po prostu zniknęło! dzięki! to jest dziwne, dlaczego nie mogę po prostu ponownie uruchomić maszyny wirtualnej?Odpowiedzi:
Oficjalna dokumentacja MongoDB zawiera kilka rozwiązań tego problemu. Możesz także wypróbować to rozwiązanie , które u mnie zadziałało:
Uwaga: wypróbuj dyrektywy oficjalnej dokumentacji, jeśli wersja MongoDB jest większa niż 3.0
Otwórz
/etc/init.d/mongod
plik.(jeśli nie ma takiego pliku to możesz sprawdzić
/etc/init.d/mongod
,/etc/init/mongod.conf
pliki - kredyt: poniższe komentarze)Dodaj poniższe wiersze bezpośrednio po
chown $DAEMONUSER /var/run/mongodb.pid
i przedend script
.mongod
(service mongod restart
).Oto linie, do których należy dodać
/etc/init.d/mongod
:Otóż to!
źródło
MongoDB zaktualizowało swoje zalecenia dotyczące używania skryptu init.d teraz: http://docs.mongodb.org/master/tutorial/transparent-huge-pages/
źródło
W przypadku Ubuntu 14.04 przy użyciu upstart:
Ponieważ wdrażamy maszyny z Ansible, nie lubię modyfikować plików rc ani konfiguracji GRUB.
Próbowałem używać
sysfsutils
/sysfs.conf
ale napotkałem problemy z synchronizacją podczas uruchamiania usług na szybkich (lub wolnych komputerach). Wyglądało na to, że czasami mongod był uruchamiany przed sysfsutils. Czasami to działało, czasami nie.Ponieważ mongod jest początkowym procesem, stwierdziłem, że najczystszym rozwiązaniem jest dodanie pliku
/etc/init/mongod_vm_settings.conf
o następującej treści:Spowoduje to uruchomienie skryptu tuż przed uruchomieniem mongod. Uruchom ponownie mongod (
sudo service mongod restart
) i gotowe.źródło
Otwórz / etc / default / grub
sudo vi / etc / default / grub
Zaktualizuj
GRUB_CMDLINE_LINUX_DEFAULT = „” do GRUB_CMDLINE_LINUX_DEFAULT = „transparent_hugepage = nigdy”
: wq (w vi)
Uruchom update-grub
sudo update-grub
Uruchom ponownie maszynę
Aktualizacja: Jeśli korzystasz z wirtualnego dostawcy hostingu, to zadziała. DigitalOcean NIE obsługuje bootowania grub.
źródło
Zweryfikowano, że defragmentacja jest badana bez względu na włączone:
Dlatego naprawa tego błędu polega na tym, aby najpierw spojrzeć na transparent_hugepage / enabled, a jeśli nigdy nie jest, nie przejmuj się patrzeniem na nieistotne ustawienie transparent_hugepage / defrag.
Źródło .
źródło
Ubuntu 16.04 przy użyciu systemd:
systemctl edit mongod
Wklej następujące:
źródło