Próbuję postępować zgodnie z instrukcjami dokumentacji MongoDB , aby poprawnie skonfigurować LTH dla maszyny uruchomienie MongoDB.

Jedna z instrukcji polega na utworzeniu skryptu uruchamianego podczas rozruchu. Niestety ani sugerowany skrypt, ani podobny kod nie zostały przepisane jako systemd działa.

Podczas debugowania problemu napotkałem inny. Kiedy wykonuję:

root@demo:/# echo never > /sys/kernel/mm/transparent_hugepage/enabled 

polecenie wygląda na to, że działa pomyślnie, ale plik pozostaje niezmieniony, więc jeśli następnie uruchomię:

root@demo:/# cat /sys/kernel/mm/transparent_hugepage/enabled 

zwraca oryginalną treść:

always madvise [never] 

Próbowałem zmodyfikować plik za pomocą vim; podczas próby zapisania pliku narzeka, że Fsync nie powiodło się . Chociaż ten błąd został udokumentowany , w moim przypadku jest wystarczająco dużo miejsca na dysku / (20% zajęte , Dostępne 7 GB.)

Uruchamiam polecenie w trybie sudo i uprawnienia do pliku wydają się prawidłowe:

-rw-r--r-- 1 root root 4096 ... 

Katalog /sys nie jest zamontowany w trybie tylko do odczytu , jak pokazano:

root@demo:/# grep sysfs /proc/mounts sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 

Co się tutaj dzieje?

Odpowiedź

sysfs, system plików zwykle montowany na /sys, jest specjalnym wirtualnym systemem plików do połączenia z jądrem Linuksa.

Pliki w nim zawarte są n” Prawdziwe pliki, reprezentują struktury danych w jądrze i obsługują tylko raczej proste metody dostępu. Czytanie z takiego pliku prosi jądro o informacje. Zapis do takiego pliku instruuje jądro, aby zmieniło ustawienie lub wykonało działanie.

Dlatego vim kończy się niepowodzeniem. Próbuje uzyskać dostęp do wirtualnych plików w sposoby zoptymalizowane dla prawdziwych plików i nie jest „t obsługiwane na sysfs.

Twoje pierwsze polecenie

root@demo:/# echo never > /sys/kernel/mm/transparent_hugepage/enabled 

już się udało!

Wiele „plików” sysfs, w tym /sys/kernel/mm/transparent_hugepage/enabled, nie drukuje tylko aktualnych ustawień podczas odczytu, ale wypisuje wszystkie możliwe tryby i użyj nawiasów, aby opisać, który z wielu trybów jest aktywny.

W twoim przypadku never jest w nawiasach, więc tryb, który próbujesz aktywować za pomocą echo jest już aktywny:

always madvise [never] 

Jeśli „interesuje Cię, jak sysfs działa, więcej na ten temat możesz przeczytać w Wikipedii lub w dokumentacji jądra Linuksa .

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *