Ubuntu 18.04 Step by Step
Spero che tutto ciò aiuti, abbastanza a lungo ma funziona (con prova)
Mi sono imbattuto in questo thread durante l'installazione di MongoDb su Ubuntu 18.04
https://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/
Come puoi vedere è piuttosto vecchio ma funziona per me.
Ecco cosa ho fatto.
Impostazioni consigliate da MongoDb ( https://docs.mongodb.com/manual/reference/ulimit/#review-and-set-resource-limits )
- -f (dimensione del file): illimitato
- -t (tempo CPU): illimitato
- -v (memoria virtuale): illimitato [1]
- -l (dimensioni della memoria bloccata): illimitato
- -n (file aperti): 64000
- -m (dimensione della memoria): illimitato [1] [2]
- -u (processi / thread): 64000
Controlla i miei limiti attuali
ubuntu @ isdb-stage: ~ $ ulimit -a
dimensione del file core (blocchi, -c) 0
dimensione seg dati (kbyte, -d) illimitata
priorità di pianificazione (-e) 0
dimensione del file (blocchi, -f) illimitata
segnali in sospeso (-i) 7873
memoria massima bloccata (kbyte, -l) 16384
dimensione massima della memoria (kbyte, -m) illimitata
file aperti (-n) 1024
dimensione del tubo (512 byte, -p) 8
Code dei messaggi POSIX (byte, -q) 819200
priorità in tempo reale (-r) 0
dimensione dello stack (kbyte, -s) 8192
tempo della CPU (secondi, -t) illimitato
processi utente max (-u) 7873
memoria virtuale (kbyte, -v) illimitata
blocchi di file (-x) illimitati
Prendi nota di ciò che richiede un cambiamento
- dimensioni della memoria bloccata , deve essere impostato su illimitato.
- file aperti , deve essere impostato su 64000
- processi / thread * , deve essere impostato su 64000
Cosa dice ubuntu su come modificare questi limiti?
$ man limits.conf
NOME
limits.conf - file di configurazione per il modulo pam_limits
DESCRIZIONE
Il modulo pam_limits.so applica limiti ulimit, una buona priorità e un numero limitato di sessioni di accesso simultaneo alle sessioni di accesso dell'utente. Questa descrizione della sintassi del file di configurazione si applica a
File /etc/security/limits.conf e file * .conf nel file
/etc/security/limits.d directory.
- Sembra abbastanza chiaro, modifica il file /etc/security/limits.conf. Ok cerchiamo di capirlo ....
Ecco l'inizio di quel file, e ovviamente ha anche le istruzioni all'interno, ricordate che questo è open source scritto dai bravi ragazzi! :)
vi /etc/security/limits.conf
# /etc/security/limits.conf
# Ogni riga descrive un limite per un utente nel modulo:
#
#Dove:
# può essere:
# - un nome utente
(Dai un'occhiata al file tu stesso se vuoi maggiori dettagli)
- Finalmente apporta le modifiche. Dato che MongoDb funziona come gruppo mongodb e utente, sarebbe una buona idea aumentare solo i limiti degli utenti. Ho visto '*' usato qua e là, per me è un rischio per la sicurezza. Offre a tutti quanti sul server questi limiti, che potrebbero essere utilizzati per massimizzare il server. Quindi, li facciamo solo per l'utente di mongodb.
Ecco le mie modifiche: -
mongodb soft memlock illimitato
mongodb hard memlock illimitato
mongodb soft nofile 64000
mongodb hard nofile 64000
mongodb soft nproc 64000
mongodb hard nproc 64000
Infine, finalmente, ricordalo nella voce man limits.conf.
limits.conf - file di configurazione per il modulo pam_limits
Meglio assicurarsi che il modulo pam_limits sia caricato in modo che tutto ciò limiti roba funzioni. Per fare ciò, modifica /etc/pam.d/common-session. Naturalmente questo è anche nella pagina man.
sudo vi /etc/pam.d/common-session
# Aggiungi questo per assicurarsi che pam_limits.so sia caricato.
sessione richiesta pam_limits.so
Un riavvio mostrerà i limiti (per l'utente mongodb) che sono stati applicati. Se invece li hai applicati usando '*', puoi controllare senza dover passare all'utente mongodb. Esegui questo comando.
$ ulimit -a
dimensione del file core (blocchi, -c) 0
dimensione seg dati (kbyte, -d) illimitata
priorità di pianificazione (-e) 0
dimensione del file (blocchi, -f) illimitata
segnali in sospeso (-i) 7873
memoria massima bloccata (kbyte, -l) illimitata
dimensione massima della memoria (kbyte, -m) illimitata
file aperti (-n) 64000
dimensione del tubo (512 byte, -p) 8
Code dei messaggi POSIX (byte, -q) 819200
priorità in tempo reale (-r) 0
dimensione dello stack (kbyte, -s) 8192
tempo della CPU (secondi, -t) illimitato
processi utente max (-u) 64000
memoria virtuale (kbyte, -v) illimitata
blocchi di file (-x) illimitati
Come puoi vedere, spumeggiante spumeggiante tutto impostato sui limiti che volevamo.