¿Cómo configuro ulimits para el mongod
proceso / usuario en CentOS?
He leído la documentación oficial pero no proporciona instrucciones específicas del sistema operativo.
Necesito configurar
ulimit -u 64000
y necesito que esto persista después de reiniciar.Estoy ejecutando CentOS 5.5, aunque pronto actualizaré a 6.5.
Prefiero no modificar ninguna secuencia de comandos instalada por el administrador de paquetes
cat /proc/{pid}/limits
no muestra ningún cambio. ¿Se necesita hacer algo adicional para garantizar que se lea la conf?La versión más nueva del script de inicio mongod de CentOS (/etc/init.d/mongod) tiene la configuración predeterminada integrada en la opción de inicio:
Si desea cambiar los valores y no modificar el script, copie el script en /etc/init.d/mongod-custom, luego edite el script de inicio personalizado, establezca sus valores y cambie chkconfig para usar mongod-custom en lugar de mongod.
fuente
Para agregar a la respuesta de thaspius, los límites parecen estar establecidos como él describe en el guión de inicio, pero todavía recibía la advertencia
[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.
Esto parece sugerir que el límite de archivos definido en el script de inicio había tenido efecto, pero no el límite de procesos. También siguiendo la respuesta de Nathan C y agregando
mongod soft nproc 64000
a
/etc/security/limits.d/90-nproc.conf
y reiniciar el sistema resuelve el problema.Si alguien puede arrojar luz sobre por qué eso era necesario a pesar de tener los valores en el script de inicio mongodb, ¡soy todo oídos!
fuente
Haga este cambio en el
/etc/security/limits.conf
archivo. Establezca los límites rígidos y flexibles, y debería ser bueno.fuente
/etc/security/limits.d/
lugar de jugarlimits.conf
directamente con el archivoPara que el cambio sea persistente, debe editar la secuencia de comandos init, por ejemplo, en Red Hat 7, la secuencia de comandos init tiene la siguiente línea:
Tienes que agregar el siguiente:
Y luego reinicie el servicio.
Espero que esto ayude.
fuente