Ubuntu 18.04 Krok po kroku
Mam nadzieję, że to wszystko pomaga, dość długo, ale działa (z dowodem)
Natknąłem się na ten wątek podczas instalowania MongoDb na Ubuntu 18.04
https://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/
Jak widać, jest dość stary, ale dla mnie działa.
Oto co zrobiłem.
Zalecane ustawienia MongoDb ( https://docs.mongodb.com/manual/reference/ulimit/#review-and-set-resource-limits )
- -f (rozmiar pliku): nieograniczony
- -t (czas procesora): nieograniczony
- -v (pamięć wirtualna): nieograniczona [1]
- -l (rozmiar zablokowanej pamięci): nieograniczony
- -n (otwarte pliki): 64000
- -m (rozmiar pamięci): nieograniczony [1] [2]
- -u (procesy / wątki): 64000
Sprawdź moje obecne limity
ubuntu @ isdb-stage: ~ $ ulimit -a
główny rozmiar pliku (bloki, -c) 0
rozmiar seg danych (w kilobajtach, -d) nieograniczony
priorytet planowania (-e) 0
rozmiar pliku (bloki, -f) nieograniczony
sygnały oczekujące (-i) 7873
maksymalna zablokowana pamięć (kilobajty, -l) 16384
maksymalny rozmiar pamięci (kilobajty, -m) nieograniczony
otwórz pliki (-n) 1024
rozmiar rury (512 bajtów, -p) 8
Kolejki komunikatów POSIX (bajty, -q) 819200
priorytet w czasie rzeczywistym (-r) 0
rozmiar stosu (kB, -s) 8192
czas procesora (sekundy, -t) nieograniczony
maksymalna liczba procesów użytkownika (-u) 7873
pamięć wirtualna (kilobajty, -v) nieograniczona
blokady plików (-x) nieograniczone
Zanotuj, co wymaga zmiany
- rozmiar zablokowanej pamięci , należy ustawić na nieograniczony.
- otwarte pliki , należy ustawić na 64000
- procesy / wątki * , należy ustawić na 64000
Co mówi Ubuntu o tym, jak zmienić te limity?
$ man limit.conf
NAZWA
limit.conf - plik konfiguracyjny dla modułu pam_limits
OPIS
Moduł pam_limits.so stosuje limity ulimit, miły priorytet i liczbę sesji równoczesnego logowania do sesji logowania użytkownika. Ten opis składni pliku konfiguracyjnego dotyczy
Plik /etc/security/limits.conf i pliki * .conf w pliku
Katalog /etc/security/limits.d.
- Wydaje się dość jasne, edytuj plik /etc/security/limits.conf. Ok, wymyślmy to ...
Oto początek tego pliku. Spójrz, nawet zawiera instrukcje, pamiętaj, że jest to oprogramowanie typu open source napisane przez dobrych facetów! :)
vi /etc/security/limits.conf
# /etc/security/limits.conf
# Każda linia opisuje limit dla użytkownika w formie:
#
#Gdzie:
# może być:
# - nazwa użytkownika
(Jeśli chcesz uzyskać więcej informacji, obejrzyj sam plik)
- Wreszcie dokonaj zmian. Ponieważ MongoDb działa jako grupa i użytkownik mongodb, dobrym pomysłem byłoby zwiększenie limitów tylko dla użytkowników. Widziałem „*” używane tu i tam, dla mnie to ryzyko bezpieczeństwa. Daje to wszystkim różnym limitom na serwerze, które można wykorzystać do maksymalizacji serwera. Zróbmy je więc tylko dla użytkownika mongodb.
Oto moje zmiany: -
mongodb soft memlock nieograniczony
Mongodb Hard Memlock Unlimited
mongodb soft nofile 64000
mongodb hard nofile 64000
mongodb soft nproc 64000
mongodb hard nproc 64000
Wreszcie pamiętaj o tym we wpisie man limit.conf.
limit.conf - plik konfiguracyjny dla modułu pam_limits
Lepiej upewnij się, że moduł pam_limits jest załadowany, aby wszystkie te ograniczenia działały poprawnie. Aby to zrobić, edytuj /etc/pam.d/common-session. Oczywiście jest to również na stronie man.
sudo vi /etc/pam.d/common-session
# Dodaj to, aby załadować pam_limits.so.
wymagana sesja pam_limits.so
Ponowne uruchomienie pokaże limity (dla użytkownika mongodb) zostały zastosowane. Jeśli zastosowałeś je za pomocą „*”, możesz sprawdzić bez konieczności przełączania się na użytkownika mongodb. Po prostu wykonaj to polecenie.
$ ulimit -a
główny rozmiar pliku (bloki, -c) 0
rozmiar seg danych (w kilobajtach, -d) nieograniczony
priorytet planowania (-e) 0
rozmiar pliku (bloki, -f) nieograniczony
sygnały oczekujące (-i) 7873
maksymalna zablokowana pamięć (kilobajty, -l) nieograniczona
maksymalny rozmiar pamięci (kilobajty, -m) nieograniczony
otwórz pliki (-n) 64000
rozmiar rury (512 bajtów, -p) 8
Kolejki komunikatów POSIX (bajty, -q) 819200
priorytet w czasie rzeczywistym (-r) 0
rozmiar stosu (kB, -s) 8192
czas procesora (sekundy, -t) nieograniczony
maksymalna liczba procesów użytkownika (-u) 64000
pamięć wirtualna (kilobajty, -v) nieograniczona
blokady plików (-x) nieograniczone
Jak widać, lubieżnie żartobliwie ustawiono limity, których chcieliśmy.