4 votos

trace "demasiados archivos abiertos"

Tengo un programa que se cierra después de un tiempo con "demasiados archivos abiertos". ¿Cómo puedo controlar qué archivos se abren y se cierran? Sé que puedo establecer este límite un valor más alto, pero eso es posponer el problema.

Recuerdo que el uso de un programa como dtruss o dtrace para ese fin, pero no puedo recordar cómo me invoca y --help dio a mucha confusión.

Ejecutar el programa con un contenedor de secuencia de comandos basado en nodejs, así que tengo que seguir los procesos secundarios.

Pregunta: ¿cuál es la mejor estrategia para averiguar qué archivos (descriptores) se abren y que se cierran?

2voto

geocoin Puntos 121

lsof se muestran los identificadores de archivo abierto.

Si usted sabe que el PID uso de la -p bandera.

Por ejemplo, en mi zsh shell en el momento en que veo:

alex@smiley:~|⇒  lsof -p 82946
COMMAND   PID USER   FD   TYPE DEVICE  SIZE/OFF     NODE NAME
zsh     82946 alex  cwd    DIR  14,12      2414   186278 /Users/alex
zsh     82946 alex  txt    REG  14,12   1103984       73 /bin/zsh
zsh     82946 alex  txt    REG  14,12    474672   787843 /usr/lib/zsh/4.3.11/zsh/zle.so
zsh     82946 alex  txt    REG  14,12    258672   787864 /usr/lib/zsh/4.3.11/zsh/complete.so
zsh     82946 alex  txt    REG  14,12    120576   787863 /usr/lib/zsh/4.3.11/zsh/complist.so
zsh     82946 alex  txt    REG  14,12     71264   787838 /usr/lib/zsh/4.3.11/zsh/zutil.so
zsh     82946 alex  txt    REG  14,12     79968   787852 /usr/lib/zsh/4.3.11/zsh/parameter.so
zsh     82946 alex  txt    REG  14,12    599280  7719861 /usr/lib/dyld
zsh     82946 alex  txt    REG  14,12 296980480 12427083 /private/var/db/dyld/dyld_shared_cache_x86_64
zsh     82946 alex    0u   CHR   16,0   0t26354     6285 /dev/ttys000
zsh     82946 alex    1u   CHR   16,0   0t26354     6285 /dev/ttys000
zsh     82946 alex    2u   CHR   16,0   0t26354     6285 /dev/ttys000
zsh     82946 alex   10u   CHR   16,0    0t3432     6285 /dev/ttys000

La columna Tipo muestra las diversas archivo o pseudo los tipos de archivo que se pueden abrir, tubos, tuberías, etc.

ulimit o límite, dependiendo de la shell y el sistema le permite cambiar el número de archivos abiertos.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X