Una posibilidad es que se ha alcanzado el usuario límite para la cantidad de archivos abiertos.
Creo que cada proceso/subproceso consume uno o más descriptores de archivos.
Por ejemplo, cuando esto ocurre para el usuario y luego "no" comando shell va a funcionar, ya que los comandos de shell tenedor de un proceso para ejecutar (que se ve errores como "-bash: tenedor: reintento: Recurso temporalmente no disponible")
llegué a este tema y encontró que sólo el usuario actual no fue capaz de generar procsos ... otros usuarios eran uneffected.
Para resolver, suba su configuración de ulimit -n (archivos máx. Abiertos) ... siga los detalles.
Se puede ver sus límites de usuario con el comando:
ulimit -a
hasta su límite máximo del archivo con lo siguiente:
ulimit -n 65536
Aquí es lo que tengo en este momento:
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 256797
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 75000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 100000
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Para ver todos los límites explícitos para su sistema:
cat /etc/security/limits.conf
Tenga en cuenta: Estoy usando Oracle Linux 6.3 - los resultados pueden diferir ligeramente entre las distribuciones.
también podría ser un problema con la aplicación que acaba de crear demasiados subprocesos, como se menciona en el artículo, más subprocesos == más uso de memoria espacial nativa que se puede abordar con ajuste ... esto supone número legítimo de subprocesos necesarios para Una aplicación. pero si la aplicación engendra hilos y nunca los mata (fuga de hilo), entonces no hay forma de afinarlo. también podría ser que el sistema operativo tenga un límite en el conteo de hilos por proceso. –
¿Hay alguna manera fácil desde el código de Java para obtener el # de subprocesos asociados con mi proceso? Dado que esta es una empresa de alojamiento web JVM, tengo muy poco acceso a las herramientas de nivel JVM. Sin embargo, puedo instrumentar mi código ... (que es lo que hice para obtener información de la memoria JVM). – tvfoodmaps
no hay manera de que AFAIK, pero la empresa de alojamiento tiene un equipo de soporte que puede volcar los hilos por ti si les enseñas cómo hacerlo. –