¿Cómo puedo cambiar el número de archivos abiertos límite en Linux?[cerrado]
-
09-06-2019 - |
Pregunta
Al ejecutar mi aplicación a veces me sale un error sobre too many files open
.
Ejecución ulimit -a
los informes que el límite es de 1024.¿Cómo puedo aumentar el límite por encima de 1024?
Editar
ulimit -n 2048
resultados en un error de permiso.
Solución
Siempre se puede tratar de hacer un ulimit -n 2048
.Sólo se restablecerá el límite para su actual consola y el número que usted especifique no debe exceder el límite duro
Cada sistema operativo tiene un duro diferente límite el programa de instalación en un archivo de configuración.Por ejemplo, el duro abrir el archivo límite en Solaris se puede establecer en el arranque de /etc/system.
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
En OS X, estos mismos datos se debe establecer en /etc/sysctl.conf.
kern.maxfilesperproc=166384
kern.maxfiles=8192
Bajo Linux, estos valores son a menudo en /etc/security/limits.conf.
Hay dos tipos de límites:
- suave los límites son simplemente el cumplimiento de los límites de
- duro límites marque el valor máximo que no puede ser superado mediante el establecimiento de un límite suave
Suave límites podría ser establecido por cualquier usuario mientras duro límites sólo pueden cambiarse por la raíz.Los límites son una propiedad de un proceso.Se heredan cuando un proceso hijo es creado para todo el sistema de fijar límites durante la inicialización del sistema en los scripts de inicio de usuario y fijar límites durante el inicio de sesión de usuario, por ejemplo, mediante el uso de pam_limits.
A menudo hay conjunto de valores por defecto cuando se inicia el equipo.Así que, aunque puede restablecer su ulimit en un individuo shell, usted puede encontrar que se restablece al valor anterior en el reinicio.Puede que desee grep sus scripts de arranque para la existencia de ulimit comandos si desea cambiar el valor predeterminado.
Otros consejos
Si estás usando Linux y tienes el permiso de error, deberá elevar el límite permitido en la /etc/limits.conf
o /etc/security/limits.conf
archivo (donde se encuentra el archivo depende de su distribución específica de Linux).
Por ejemplo, para permitir que cualquier persona en la máquina para elevar su número de archivos abiertos hasta 10000 agregue la línea a la limits.conf
archivo.
* hard nofile 10000
A continuación, cierre la sesión y entrar a su sistema y debe ser capaz de hacer:
ulimit -n 10000
sin un error de permiso.
1) Agregar la siguiente línea /etc/security/limits.conf
webuser hard nofile 64000
a continuación, inicie la sesión como webuser
su - webuser
2) Editar dos archivos siguientes para webuser
anexar .bashrc y .bash_profile archivo ejecutando
echo "ulimit -n 64000" >> .bashrc ; echo "ulimit -n 64000" >> .bash_profile
3) cierre la Sesión y, a continuación, vuelva a iniciar la sesión y comprobar que los cambios se han realizado correctamente:
$ ulimit -a | grep open
open files (-n) 64000
Eso es todo y les boom, boom boom.
Si algunos de sus servicios se están resistiendo en ulimits, a veces es más fácil poner los comandos apropiados en servicio del guión de inicio.Por ejemplo, cuando Apache es la presentación de informes
[alerta] (11)Recurso temporalmente no disponible:apr_thread_create:no se puede crear el subproceso de trabajo
Trate de poner ulimit -s unlimited
en /etc/init.d/httpd
.Esto no requiere reiniciar el servidor.