Ubuntu 18.04 étape par étape
J'espère que tout cela aide, assez longtemps mais ça marche (avec preuve)
Je suis tombé sur ce fil lors de l'installation de MongoDb sur Ubuntu 18.04
https://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/
Comme vous pouvez le voir, c'est assez ancien, mais cela fonctionne pour moi.
Voici ce que j'ai fait.
Paramètres recommandés de MongoDb ( https://docs.mongodb.com/manual/reference/ulimit/#review-and-set-resource-limits )
- -f (taille de fichier): illimité
- -t (temps processeur): illimité
- -v (mémoire virtuelle): illimité [1]
- -l (taille verrouillée en mémoire): illimité
- -n (fichiers ouverts): 64000
- -m (taille de la mémoire): illimité [1] [2]
- -u (processus / threads): 64000
Vérifier mes limites actuelles
ubuntu @ isdb-stage: ~ $ ulimit -a
taille du fichier principal (blocs, -c) 0
taille de segment de données (kilo-octets, -d) illimitée
priorité de planification (-e) 0
taille de fichier (blocs, -f) illimité
signaux en attente (-i) 7873
mémoire verrouillée max. (kilo-octets, -l) 16384
taille maximale de la mémoire (kilo-octets, -m) illimitée
fichiers ouverts (-n) 1024
taille du tuyau (512 octets, -p) 8
Files d'attente de messages POSIX (octets, -q) 819200
priorité en temps réel (-r) 0
taille de la pile (kilo-octets, -s) 8192
temps processeur (secondes, -t) illimité
processus utilisateur max (-u) 7873
mémoire virtuelle (kilo-octets, -v) illimitée
verrous de fichiers (-x) illimités
Prenez note de ce qui doit être changé
- la taille de la mémoire verrouillée doit être définie sur un nombre illimité.
- fichiers ouverts , doit être défini sur 64000
- processus / threads * , doit être défini sur 64000
Que dit ubuntu sur la façon de modifier ces limites?
$ man limits.conf
NOM
limits.conf - fichier de configuration pour le module pam_limits
LA DESCRIPTION
Le module pam_limits.so applique des limites ulimit, une belle priorité et une limite de nombre de sessions de connexion simultanées aux sessions de connexion utilisateur. Cette description de la syntaxe du fichier de configuration s'applique à la
/etc/security/limits.conf et les fichiers * .conf dans le
répertoire /etc/security/limits.d.
- Cela semble assez clair, modifiez le fichier /etc/security/limits.conf. Ok laisse le comprendre ....
Voici le début de ce fichier, et regardez, il contient même des instructions, bien sûr, rappelez-vous que c'est un open source écrit par les bons! :)
vi /etc/security/limits.conf
# /etc/security/limits.conf
#Chaque ligne décrit une limite pour un utilisateur sous la forme:
#
#Où:
# peut être:
# - un nom d'utilisateur
(Jetez un œil au fichier vous-même si vous voulez plus de détails)
- Enfin, apportez les modifications. Étant donné que MongoDb fonctionne en tant que groupe mongodb et utilisateur, il serait judicieux d'augmenter uniquement les limites des utilisateurs. J'ai vu «*» utilisé ici et là, pour moi c'est un risque pour la sécurité. Il donne à tout le monde sur le serveur ces limites, qui pourraient être utilisées pour maximiser votre serveur. Permet donc de les faire pour l'utilisateur mongodb uniquement.
Voici mes changements: -
mongodb soft memlock illimité
mongodb hard memlock unlimited
mongodb soft nofile 64000
mongodb hard nofile 64000
mongodb soft nproc 64000
mongodb hard nproc 64000
Enfin, souvenez-vous de cela dans l'entrée man limits.conf.
limits.conf - fichier de configuration pour le module pam_limits
Assurez-vous que le module pam_limits est chargé pour que tout cela fonctionne. Pour ce faire, vous modifiez /etc/pam.d/common-session. Bien sûr, cela se trouve également dans la page de manuel.
sudo vi /etc/pam.d/common-session
# Ajoutez ceci pour vous assurer que pam_limits.so est chargé.
session requise pam_limits.so
Un redémarrage montrera que les limites (pour l'utilisateur mongodb) ont été appliquées. Si vous les avez appliqués à l'aide de '*' à la place, vous pouvez vérifier sans avoir à passer à l'utilisateur mongodb. Exécutez simplement cette commande.
$ ulimit -a
taille du fichier principal (blocs, -c) 0
taille de segment de données (kilo-octets, -d) illimitée
priorité de planification (-e) 0
taille de fichier (blocs, -f) illimité
signaux en attente (-i) 7873
mémoire verrouillée max (kilo-octets, -l) illimitée
taille maximale de la mémoire (kilo-octets, -m) illimitée
fichiers ouverts (-n) 64000
taille du tuyau (512 octets, -p) 8
Files d'attente de messages POSIX (octets, -q) 819200
priorité en temps réel (-r) 0
taille de la pile (kilo-octets, -s) 8192
temps processeur (secondes, -t) illimité
processus utilisateur max (-u) 64000
mémoire virtuelle (kilo-octets, -v) illimitée
verrous de fichiers (-x) illimités
Comme vous pouvez le voir, jubilement, tout est fixé aux limites que nous voulions.