OS X "espiral de la muerte"? No se pueden iniciar nuevos procesos, eventualmente se vuelven inutilizables

Tengo esta situación extraña surgir de vez en cuando.

Mi sistema OS X (Snow Leopard) simplemente dejará de poder hacer algo "nuevo". No puede iniciar ningún nuevo proceso (como, por ejemplo, una nueva aplicación o un nuevo proceso bash) que no haya cargado antes . Las cosas que ya están funcionando pueden ser capaces de empezar de nuevo … pero si está fuera de caché (tal vez?) Sólo se sienta allí colgado.

Eventualmente todo el sistema se degrada, aplicación por aplicación, proceso por proceso, hasta el punto donde nada responde (incluyendo el Finder, UI, etc) y tengo que hacer un ciclo de energía dura.

¿Algunas ideas? Cuando sucede, ni siquiera puedo iniciar Activity Monitor o top si aún no se están ejecutando, así que es difícil determinarlo.

¿Qué dice el registro de la consola, del sistema y del kernel? Mejor aún, use sudo syslog | more sudo syslog | more para volcar toda su base de datos de mensajes syslog (advertencia: gran cantidad de salida), y buscar mensajes de todo el tiempo que el problema estaba sucediendo.

También busque en / Library / Logs / DiagnosticReports los fallos o spindumps desde el momento en que el problema estaba ocurriendo.

Considere actualizar su pregunta con esta salida, o vincular a ella en Pastebin.com o gist.github.com. Tal vez podamos ayudarte a resolverlo.

Usted no tiene ni "Mozy" o "Hands Off!" Instalado, ¿verdad? Recientemente he ayudado a resolver algunos problemas con síntomas similares que se reducen a malos comportamientos de los paquetes:

Obtener el mensaje de la consola: ipc_kmsg_copyout_header: no puede crecer el espacio ipc del usuario. ¿Algún gurú del núcleo de Mac OS X aquí?

Algunas aplicaciones de Mac fallan con frecuencia, con "__THE_SYSTEM_HAS_NO_PORT_SETS_AVAILABLE__" en el backtrace

Esto suena mucho como el problema que estaba teniendo que Spiff me ayudó con: Conseguir mensaje de la consola: ipc_kmsg_copyout_header: no puede crecer el espacio de usuario ipc. ¿Algún gurú del núcleo de Mac OS X aquí?

Compartiré un script de shell que escribí para ayudar a rastrear el proceso que podría estar utilizando los puertos ipc. Registra la salida superior formateada a un archivo periódicamente y puede comprobarlo después de que el equipo se bloquee y reinicie. Lo siento es feo

 #!/usr/bin/env bash # port_profile.sh [output_file_path] # use top to profile port usage for processes every 10 minutes (600s) args=("$@") sleep_time=600 if [ "$#" -eq 0 ] then outfile="port_profile.txt" else outfile="$@" fi (while true; do data=`top -o ports -stats ports,command,pid,msgsent,msgrecv,user,uid, -l 1 | grep -v 'CPU\|Disks\|LoadAvg\|Load Avg\|MemRegions\|Networks\|PhysMem\|Procs\|Processes\|SharedLibs\|Threads\|Time\|VirtMem\|VM\|Swap\|Purgeable'` while read -r line; do echo -e "$line" done <<< "$data" echo -e "" sleep $sleep_time done) >> $outfile & 

He descubierto mediante la salida del comando "lsof" a un archivo de texto para enumerar los archivos y sockets actualmente abiertos de todos los procesos en ejecución, que una aplicación estaba abriendo cargas de sockets de comunicación entre procesos y el sistema operativo llegó a su límite:

 lsof > ~/lsof.txt 

Muchos procesos tendrán un gran número de archivos y zócalos abiertos, pero la aplicación 3connect parecía tener mucho más que casi cualquier otro, por lo que lo eliminé. Desde entonces la máquina ha estado bien.