Actualmente ulimit -nmuestra 10000. Quiero aumentarlo a 40000. He editado "/etc/sysctl.conf" y he puesto fs.file-max=40000. También he editado /etc/security/limits.confy actualizado valores duros y blandos. Pero todavía muestra ulimit 10000. Después de hacer todos estos cambios, reinicié mi computadora portátil. Tengo acceso a la contraseña de root.
usr_name@usr_name-lap:/etc$ /sbin/sysctl fs.file-max
fs.file-max = 500000
Se agregaron las siguientes líneas en /etc/security/limits.conf-
* soft nofile 40000
* hard nofile 40000
También agregué la siguiente línea en /etc/pam.d/su:
session required pam_limits.so
He intentado todas las formas posibles como se indica en otros foros, pero puedo alcanzar un límite máximo de 10000 , no más allá de eso. ¿Cuál puede ser el problema?
Estoy haciendo este cambio porque neo4jarroja límites máximos de archivos abiertos alcanzados.

sudo ulimit -n 40000Respuestas:
Estoy usando Debian pero esta solución debería funcionar bien con Ubuntu.
Tienes que agregar una línea en el script neo4j-service .
Esto es lo que he hecho:
Tenga en cuenta que estoy usando la versión 2.0 Enterprise Edition. Espero que esto te ayudará.
fuente
/etc/security/limits.confy/etc/pam.d/common-session*/etc/init.d/neo4j-servicearchivo y Martin Larivière tiene razón, insertaruname -n 40000resuelve el problema. No conozco las diferencias entre Ubuntu Server y Ubuntu, así que quizás también tengas razón, agrego esto solo para aclarar que lo que escribió Martin resuelve el problema con Ubuntu 14.04 simple.common-session-*truco no funcionará, porque neo4j-service se basa en PAMstart-stop-daemonystart-stop-daemonno aprovecha en absoluto. De hecho, la única solución es agregar unaulimit -n xxxllamada explícita en el script de inicio.Lo que está haciendo no funcionará para el usuario root. Tal vez esté ejecutando sus servicios como root y, por lo tanto, no pueda ver el cambio.
Para aumentar el ulimit para el usuario root, debe reemplazar el
*por root.*no aplica para usuarios root. El descanso es el mismo que tú. Lo volveré a citar aquí.Agregue las siguientes líneas al archivo:
/etc/security/limits.confY luego agregue la siguiente línea en el archivo:
/etc/pam.d/common-sessionEsto actualizará el ulimit para el usuario root. Como se mencionó en los comentarios, es posible que ni siquiera tenga que reiniciar para ver el cambio.
fuente
start-stop-daemon, elcommon-session-*truco no funcionará, porquestart-stop-daemonno aprovecha PAM en absoluto. No hay otra forma que agregar unaulimit -n xxxllamada explícita en algún lugar del script de inicio antes de que se inicie el servicio.1) Verifique el
file-maxlímite de sysctl :Si el límite es inferior al valor deseado, abra
sysctl.confy agregue esta línea al final del archivo:Finalmente, aplique
sysctllímites:2) Edite
/etc/security/limits.confy agregue debajo lo mencionadoEstos límites no se aplicarán al
rootusuario, si desea cambiar losrootlímites, debe hacerlo explícitamente:3) Reinicie el sistema o agregue la siguiente línea al final de
/etc/pam.d/common-session:Cierre la sesión y vuelva a iniciar sesión.
4) Verifique los límites suaves:
y límites duros:
Referencia: http://ithubinfo.blogspot.in/2013/07/how-to-increase-ulimit-open-file-and.html
fuente
gnome-session-quitTenía el mismo problema y lo hice funcionar agregando entradas a
/etc/security/limits.d/90-somefile.conf. Tenga en cuenta que para ver cómo funcionan los límites, tuve que cerrar la sesión por completo de la sesión ssh y luego volver a iniciarla.Quería establecer el límite para un usuario específico que ejecuta un servicio, pero parece que estaba obteniendo el límite que se estableció para el usuario con el que estaba iniciando sesión. A continuación, se muestra un ejemplo para mostrar cómo se establece ulimit en función del usuario autenticado y no del usuario efectivo:
Puede utilizar un
*para especificar un aumento para todos los usuarios. Si reinicio el servicio como el usuario que inicié sesión, y agregoulimit -nal script de inicio, veo que los límites del usuario de inicio de sesión inicial están establecidos. No he tenido la oportunidad de verificar qué límites de usuario se utilizan durante el arranque del sistema o de determinar cuál es el límite real de nofile del servicio que estoy ejecutando (que se inicia con start-stop-daemon).Hay 2 enfoques que están funcionando por ahora:
fuente
whoami), primero obtengo 1024, luego 65536 (para root), luego 65536 para usuario. Pero el primero fue el mismo usuario. ¿Tiene una explicación para esto? Estoy desconcertado/etc/sysctl.conf->fs.file-max = 1000000debería arreglarlo globalmente para todos los usuarios, tampoco ningún resultado. Es como si un proceso me estuviera ignorando. Cambio de usuario a root a usuario, como usted describió, de root -> user usingsu - my_user_name. Lo que indica que el sistema sabe lo que debe usar para ese usuario, pero no ...Puede modificar el script de inicio para
neo4jhacer unulimit -n 40000antes de ejecutarneo4j.Sin embargo, no puedo evitar sentir que estás ladrando al árbol equivocado. ¿
neo4jNecesita legítimamente más de 10,000 descriptores de archivos abiertos? Esto suena muy parecido a un error enneo4jla forma en que lo está utilizando. Trataría de abordar eso.fuente
neo4jusarneo4j start. ¿Dónde puedo encontrar el script de inicio?ulimit -n 40000antesneo4j startTengo muchos problemas para que esto funcione.
El uso de lo siguiente le permite actualizarlo independientemente de su permiso de usuario.
sudo sysctl -w fs.inotify.max_user_watches=100000Editar
Acabo de ver esto de otro usuario también en otro sitio de stackexchange (ambos funcionan, pero esta versión actualiza permanentemente la configuración del sistema, en lugar de temporalmente):
fuente
Intente ejecutar este comando, creará un
*_limits.confarchivo bajo/etc/security/limits.dSimplemente salga de la terminal e inicie sesión nuevamente y verifique
ulimit -nque se establecerá para * usuariosfuente
tl; dr establece tanto los límites suaves como los estrictos
Estoy seguro de que funciona según lo previsto, pero lo agregaré aquí por si acaso. Para completar, el límite se establece aquí (consulte la sintaxis a continuación): /etc/security/limits.conf
y activado con lo siguiente en /etc/pam.d/common-session:
Si establece solo el límite estricto,
ulimit -amostrará el predeterminado (1024): Si establece solo el límite suave, el límite ulimit -a mostrará (4096)Si los configura, ambos
ulimit -amostrarán el límite suave (hasta el límite estricto, por supuesto)fuente
Lo hice asi
fuente
Configuración ULIMIT:
Hacer entrada debajo
Inicio de configuración de Ulimit para el usuario del sitio web
Haga la entrada a continuación para TODOS LOS USUARIOS
Configuración de Ulimit para cada usuario
Después de modificar el archivo, el usuario debe cerrar la sesión y volver a iniciar sesión para ver los nuevos valores.
fuente