Comment définir des ulimits pour le mongod
processus / utilisateur sur CentOS?
J'ai lu la documentation officielle mais elle ne fournit pas d'instructions spécifiques au système d'exploitation.
J'ai besoin de régler
ulimit -u 64000
et j'ai besoin que cela persiste après le redémarrage.J'utilise CentOS 5.5, mais je passerai bientôt à 6.5.
Je préfère ne pas modifier les scripts installés par le gestionnaire de paquets
cat /proc/{pid}/limits
ne montre aucun changement. Faut-il faire quelque chose de plus pour s'assurer que la conf est lue?La version la plus récente du script de démarrage de CentOS mongod (/etc/init.d/mongod) a les paramètres par défaut intégrés dans l'option de démarrage:
Si vous souhaitez modifier les valeurs sans modifier le script, copiez le script dans /etc/init.d/mongod-custom, puis modifiez le script d'initialisation personnalisé, définissez vos valeurs et modifiez chkconfig pour utiliser mongod-custom au lieu de mongod.
la source
Pour ajouter à la réponse de thaspius, les limites semblent être fixées comme il le décrit dans le script init, mais je recevais toujours l'avertissement
[initandlisten] ** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
Cela semble suggérer que la limite de fichiers définie dans le script init a pris effet, mais pas la limite des processus. En suivant également la réponse de Nathan C et en ajoutant
mongod soft nproc 64000
pour
/etc/security/limits.d/90-nproc.conf
et le redémarrage du système a résolu le problème.Si quelqu'un est capable de faire la lumière sur la raison pour laquelle cela était nécessaire malgré les valeurs dans le script d'init mongodb, je suis tout à fait à l'écoute!
la source
Apportez cette modification dans le
/etc/security/limits.conf
fichier. Fixez des limites strictes et souples, et vous devriez être bon.la source
/etc/security/limits.d/
plutôt que de jouer avec lelimits.conf
fichier directementPour que la modification soit persistante, vous devez modifier le script de init, par exemple, dans Red Hat 7, le script init a la ligne suivante:
Vous devez ajouter le suivant:
Et puis redémarrez le service.
J'espère que ça aide.
la source