2012-08-22 39 views
65

intento instalar Intel MPI de referencia en mi equipo y recibo el error:tenedor: reintentar: Recurso temporalmente no disponible

fork: retry: Resource temporarily unavailable 

Luego de recibir este error de nuevo cuando corro ls y top comando.

Qué está causando este error?

configuración de mi máquina:

Dell precision T7500 
Scientific Linux release 6.2 (Carbon) 
+0

Consulte la documentación de Linux sobre cómo aumentar el número de procesos. – theglauber

+1

Tal vez esto ayudaría: http://stackoverflow.com/questions/344203/maximum-number-of-threads-per-process-in-linux – theglauber

Respuesta

63

Esto es comúnmente causada por quedarse sin descriptores de archivos.

existe el total de los sistemas límite de descriptor de archivo, ¿qué se obtiene a partir del comando:

sysctl fs.file-nr 

Esto devuelve el recuento de descriptores de archivo:

<in_use> <unused_but_allocated> <maximum> 

para averiguar lo que un archivo de usuarios descriptor límite se ejecuta los comandos:

sudo su - <username> 
ulimit -Hn 

para averiguar cuántas descriptor de archivo s están en uso por un usuario ejecute el comando:

sudo lsof -u <username> 2>/dev/null | wc -l 

Así que ahora si va a ser un problema de límite de descriptor de archivo de sistema que tendrá que editar el archivo /etc/sysctl.conf y añadir, o modificarlo se ya existe, una línea con fs.file-max y configúrelo en un valor lo suficientemente grande como para manejar la cantidad de descriptores de archivos que necesita y reiniciar.

fs.file-max = 204708 
+9

FYI, puede utilizar "sysctl -p" para aplicar la configuración actual en /etc/sysctl.conf guardando el reinicio. – EmmEff

+2

Además, si solo ha leído/etc, puede usar 'sysctl -w fs.file-max = 204708' en tiempo de ejecución. –

39

Otra posibilidad es demasiados hilos. Acabamos de encontrarnos con este mensaje de error cuando ejecutamos un arnés de prueba en una aplicación que usa un grupo de subprocesos. Utilizamos

watch -n 5 -d "ps -eL <java_pid> | wc -l"

para ver el recuento continuo de subprocesos nativos de Linux que se ejecutan dentro del proceso de Java Identificación dado. Después de alcanzar 1000 (para nosotros, YMMV), comenzamos a recibir el mensaje de error que mencionas.

+2

Cuando probé, 'ps -eL' trabajaban para mostrar todos los procesos y' 'ps -L trabajado para mostrar los procesos con respecto a la' '. 'ps -eL ' solo muestra todos los procesos independientemente del ''. –

+1

@Willie Wheeler ¿Qué hiciste para superar el límite de hilo? He estado buscando y probando numerosas soluciones encontradas en línea, en vano, durante DAYS. ¡Nada permitirá más de 1k hilos, a excepción de un reinicio de systemd-logind, que dura aproximadamente una hora antes de que los errores comiencen de nuevo! –

+0

Las máquinas tienen recursos finitos. Si está llegando a un límite, use menos subprocesos (por ejemplo, controlados con grupo de subprocesos) o más máquinas. –

Cuestiones relacionadas