6 votos

MacOS se bloquea durante un rato antes de iniciar nuevos procesos (?) ... ¿alguna idea?

Ejecutando Ventura 13.0.1 en un Macbook Pro 2019 (Intel)

Ocasionalmente -varias veces al día, en momentos que parecen aleatorios- MacOS entra en un estado temporal en el que parece atascarse lanzando nuevos procesos. Es decir, los síntomas son:

  • Las aplicaciones en ejecución y el escritorio parecen seguir funcionando; puedo interactuar, mover Windows, abrir menús, etc.
  • Introducir un comando en un intérprete de comandos congela el intérprete de comandos
  • Al abrir una nueva pestaña en un navegador, éste se congela
  • Al intentar abrir una nueva aplicación desde LaunchBar se congela LaunchBar
  • Después de cierto tiempo (normalmente 1-2 minutos), se descongela y se inician todas las cosas que estaban en cola: se carga la pestaña del navegador, se ejecuta el comando shell, etc. Y entonces todo funciona normalmente... hasta la próxima vez.

Es decir, me parece que cuando un proceso intenta lanzar un proceso hijo, el fork() syscall se cuelga durante un tiempo, y mientras tanto el proceso padre se bloquea y por lo tanto no responde. Si es así, parece que podría haber algún tipo de bloqueo de recursos en el kernel que necesita tiempo de espera. Por supuesto que podría estar muy equivocado en todo esto, tal vez algo más está pasando.

No he notado ningún patrón de lo que desencadena esto. Sólo empezó a suceder después de actualizar a Ventura -- post hoc ergo procter hoc ? He probado los martillos gruesos obvios: reiniciar, resetear PRAM & SMC. No veo nada en los registros de la consola.

¿Alguna idea de lo que puede estar pasando? ¿Cómo depurarlo? ¿Y, por supuesto, cómo solucionarlo? :)

Actualización: Acaba de volver a pasar, podía bajar los menús de iStat mientras los nuevos procesos estaban atascados. Más cosas que encontré:

  • Durante el tiempo atascado, kernel_task bopped arriba y abajo entre el 20% y el 92% de la CPU; después de que el tiempo atascado, kernel_task vuelve a bajar en torno al 3%. RTProtectionDaemon también estaba rebotando hasta el 100% y de nuevo hacia abajo, pero lo hace también cuando no está en el tiempo atascado. No hay otra actividad de la CPU de la nota.
  • Respondiendo al comentario de @mmmmmm: Presión de memoria 10%, Memoria 55%. Ni rastro de ningún proceso swapping hog.

Actualización 2. ¿Quizá iniciar un proceso no sea realmente el (único) problema? Simplemente se atascó, me pasó a tener TextEdit corriendo con ahora ventana. Creé una nueva ventana, escribí algo de texto, y cuando intenté guardar, TextEdit se congeló también. ¿Así que tal vez el problema tiene que ver con el acceso a archivos según el comentario de @Bruce Van Allen? ¿O tal vez es sólo que una vez que el kernel se ha atascado iniciando un proceso, también se bloquea para escribir un archivo?

Actualización 3. He probado a reinstalar Ventura en modo recuperación. No hubo diferencia. Una prueba más de que ocurre espontáneamente y no en respuesta a algo que hago: esta mañana me senté ante el ordenador después de no haberlo tocado en toda la noche, intenté abrir un navegador e inmediatamente se bloqueó durante 2 minutos.

Actualización 4. Según la respuesta de @pion https://apple.stackexchange.com/a/452740/119397 Configuré spindump pausado en lldb (desactivando primero la Protección de Integridad del Sistema). Cuando volví a encontrarme con nuevos procesos atascados, continué spindump vía c en lldb . Desgraciadamente, también parecía estar atascado: Nada parecía ocurrir durante los ~2 minutos habituales, y sólo después de eso (cuando otras cosas en cola se abrieron) lldb comenzó a mostrar la salida

Process 1658 resuming
Sampling all processes for 30 seconds with 10 milliseconds of run time between samples
[etc.]

¿Así que parece que lo que bloquea la creación de procesos también bloquea la reanudación de procesos?

1voto

Monomeeth Puntos 139

Como estás descubriendo, la resolución de problemas es un proceso de eliminación y a menudo requiere mucha paciencia.

Sugiero que tu siguiente paso sea arrancar en Modo seguro :

  1. Apaga completamente tu MacBook Pro
  2. Reinicia tu MacBook Pro
  3. Pulse inmediatamente la tecla Shift clave y no hagas ruido
  4. Suelta el Shift cuando aparezca la ventana de inicio de sesión (NOTA: Si tiene activado FileVault, es posible que tenga que iniciar sesión dos veces).
  5. Una vez en modo seguro, utilice el MacBook Pro con normalidad durante el tiempo suficiente para ver que el comportamiento continúa o para saber que se ha detenido.
  6. Salga del modo seguro reiniciando el MacBook Pro de forma normal

Si tu Mac:

  • sigue atascado incluso en modo seguro esto significa que tenemos que considerar otras opciones, como un problema de hardware (proceder a 1. Ejecutar Diagnóstico Apple más abajo), o problemas con la integridad de su disco (proceda a 2. Utilizar los primeros auxilios abajo)
  • funciona normalmente en modo seguro Esto significa que hemos reducido el problema al software que se carga al arrancar el MacBook Pro. Si es así, es hora de investigar los elementos de inicio de sesión, fuentes y extensiones del kernel - proceder a 3. Investigar elementos de inicio de sesión, fuentes y extensiones del kernel. abajo.

1. Ejecutar Diagnóstico Apple

  1. Apaga completamente tu MacBook Pro
  2. Reinicia tu MacBook Pro
  3. Pulse inmediatamente la tecla D clave y no hagas ruido hasta que veas una barra de progreso o se te pida que elijas un idioma.
  4. Siga las instrucciones y espere a que finalice el diagnóstico (normalmente sólo tarda unos minutos).
  5. Una vez completado, una de dos cosas aparecerá en la pantalla:
    • a No se han encontrado problemas mensaje
    • una breve descripción de los errores encontrados e instrucciones adicionales
  6. Si la prueba de diagnóstico encuentra errores, tome nota de cuáles son

2. Utilizar los primeros auxilios

  1. Abra la Utilidad de Discos (por defecto, se encuentra en la carpeta Servicios que a su vez se encuentra dentro de la carpeta Aplicaciones carpeta)
  2. Seleccione su disco de arranque en la barra lateral izquierda
  3. Debajo verá cualquier contenedores y volúmenes asociado a ese disco
  4. Comience seleccionando el último volumen de su disco de arranque y, a continuación, haga clic en el icono Primeros auxilios de la barra de herramientas horizontal
  5. Cuando se le solicite, haga clic en Ejecutar
  6. Al finalizar, desplácese por la lista de la barra lateral hasta la siguiente contenedor o volumen y vuelve a ejecutar Primeros Auxilios
  7. Repita el Paso 6 hasta que haya ejecutado Primeros Auxilios en todos los contenedores y volúmenes asociado a ese disco, y también el propio disco

Para más información, consulte Cómo reparar un disco Mac con la Utilidad de Discos .


3. Investigar elementos de inicio de sesión, fuentes y extensiones del kernel.

Empecemos por los elementos de inicio de sesión:

  1. Arranque normal
  2. Vaya a Configuración del sistema > Usuarios y grupos
  3. Seleccione el icono General
  4. Haga clic en Login Items
  5. Ahora elimine todos los elementos "Abrir al iniciar sesión" resaltándolos y haciendo clic en el botón - botón de abajo
  6. Reinicie el ordenador

Ahora tu MacBook Pro arrancará sin que se carguen esos elementos de inicio de sesión. Pruebe esto y ver si el problema persiste:

  • Si el problema desaparece, sabrá que uno (o varios) de los elementos de inicio de sesión eran la causa del problema. A continuación, puede volver a añadirlos uno a uno hasta que haya identificado al culpable. Problema resuelto.
  • Si el problema persiste, se trata de un problema con las fuentes que has instalado tú mismo o con una extensión de kernel de terceros. Más información a continuación:

Fuentes:- Puedes eliminar cualquiera de las fuentes que hayas instalado tú mismo para ver si esto marca la diferencia.

Extensiones del núcleo:- Puede abrir Terminal (que se encuentra dentro de su carpeta Utilites) e introducir el siguiente comando:

kextstat | grep -v com.apple

El comando anterior listará las extensiones de kernel de terceros (puede que necesites estirar la ventana de Terminal para que sea más fácil de leer). Busca cualquier cosa que no recuerdes haber instalado, o algo que pertenezca a un software que hayas eliminado, o simplemente cualquier cosa que parezca fuera de lugar. Recuerda, sin embargo, que esta es una lista de Extensiones de kernel de terceros y, por tanto, cualquiera de ellos podría estar causando el problema.

0voto

rybosome Puntos 1829

Una pausa durante la generación del proceso sugiere que un hilo crítico está bloqueado en un recurso. Podemos adoptar un enfoque directo para ver qué se bloquea. Una forma de hacerlo es habilitando la simbología del kernel y ejecutando spindump durante una parada. Sin embargo, surge una complicación porque spindump es, en sí mismo, un nuevo comando, y no podrá ejecutarse durante el periodo de paralización. Así que tenemos que ser un poco inteligentes. Una solución es lanzar spindump desde dentro lldb y ponerlo en pausa en el punto de entrada del programa, y reanudarlo una vez que se produzca la parada.

He aquí el procedimiento completo:

  1. Asegúrese de que el Herramientas Xcode para desarrolladores y que también ha ejecutado el instalador de herramientas de línea de comandos para desarrolladores. (Ejecutar lldb en Terminal para confirmar).

  2. Ejecute lo siguiente Terminal para activar la simbología del kernel:

     sudo nvram boot-args="keepsyms=1"

    Asegúrate de copiar y pegar esto de modo que introduzcas comillas rectas en lugar de comillas rizadas/"inteligentes". (Si obtiene un error general, primero tendrá que desactivar la protección de la integridad del sistema . Puede volver a activarlo cuando termine con esta investigación).

  3. Reinicie su máquina para que la simbología de la orden de arranque surta efecto.

  4. En Terminal Corre: sudo lldb spindump -- -noTarget 30 10 -reveal -noProcessingWhileSampling

  5. Tras introducir su contraseña de administrador y esperar un momento a que se carguen las bibliotecas dinámicas, se encontrará en la pantalla (lldb) rápido. Introduzca lo siguiente: process launch -s

  6. spindump se ha puesto en marcha pero se ha detenido. Continúe utilizando su máquina con normalidad. Tan pronto como empiece a sentir un bloqueo, vaya a la sección Terminal ventana donde tiene su (lldb) y ejecute el comando c (es decir, pulse la tecla c seguido de Return ) de modo que spindump reanuda la ejecución. No haga nada más en el ordenador mientras se esté ejecutando, de lo contrario distorsionará la recogida de datos.

  7. Después de esperar >30 segundos para recoger una muestra y otro minuto o dos para simbolizar y formatear, obtendrás un archivo en /tmp/spindump.txt que contiene un stackshot de cada proceso.

  8. Cargue el archivo en PasteBin o algún sitio equivalente y añada el enlace a su pregunta original. Podemos echarle un vistazo y dar los siguientes pasos en la investigación.

0voto

user42397 Puntos 144

Desde hace varios años, mi sistema principal (MBP 2015 ejecutando lo último disponible) se ha atascado en momentos aleatorios. También ocurre en un iMac 2019 de vez en cuando.

Después de muchos tirones de pelo y preguntas en general del tipo "¿qué demonios está pasando aquí?", miré el Monitor de Actividad y vi que remindd se estaba volviendo realmente loco. Así que forcé el cierre. El sistema volvió a la normalidad. No se por qué que ese demonio está desquiciado, pero lo está. A veces tengo que salir del demonio varias veces al día.

He intentado averiguar por qué. Tal vez sea porque tengo más de 600 elementos en mi aplicación de recordatorios?

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