Mac OS X Mavericks se congela, deja de responder cuando se queda sin memoria

9

Sucede cada dos días y los síntomas son raros por decir lo menos. La computadora aún responde en algún sentido; Puedo mover el mouse, los botones de volumen de mis auriculares funcionan. Sin embargo, el teclado no hace nada , ni tampoco hacer clic. No se presentan estados de desplazamiento. Es como si el puntero del mouse no se moviera realmente.

Puedo usar la computadora si inicio sesión desde otra computadora usando SSH o usando un control remoto desde mi teléfono (uso Rowmote). Sin embargo, es muy lento, pero responde.

En este estado, puedo hacer muy pocas cosas. Iniciar nuevas aplicaciones es una ruleta, por ejemplo, podría iniciar el Monitor de actividad (no se ve nada extraño) pero iniciar la consola después de eso no fue posible. El cierre de aplicaciones dio resultados extraños hasta que finalmente dejó de responder al control remoto también. Curiosamente, la aplicación remota no pensó que había perdido la conexión, por lo que de alguna manera aún recibió y reconoció los comandos remotos.

Aquí está la /var/log/system.logsalida relevante desde el momento en que sucedió:

Jan  3 10:39:19 knifen.local WindowServer[119]: CGXCreateShmem : mach_make_memory_entry(268453900: unknown error code) : Cannot map memory
Jan  3 10:39:19 knifen.local WindowServer[119]: _CGXCreateWindowInline: Creation failure 1007
Jan  3 10:39:19 knifen.local Dock[15204]: CGSNewWindowWithOpaqueShape: Cannot create window
Jan  3 10:39:19 knifen.local WindowServer[119]: CGXCreateShmem : mach_make_memory_entry(268453900: unknown error code) : Cannot map memory
Jan  3 10:39:19 knifen.local WindowServer[119]: _CGXCreateWindowInline: Creation failure 1007
Jan  3 10:39:19 knifen.local Dock[15204]: CGSNewWindowWithOpaqueShape: Cannot create window
Jan  3 10:39:28 knifen.local WindowServer[119]: BUG in libdispatch: 13A603 - 2930 - 0x1000480c
Jan  3 10:39:51 knifen kernel[0]: IOHIDSystem: postEvent LLEventQueue overflow.
Jan  3 10:40:50 knifen.local Spotify[13941]: Got disconnected: Error Domain=GCDAsyncSocketErrorDomain Code=4 "Read operation timed out" UserInfo=0xfa075f0 {NSLocalizedDescription=Read operation timed out}
Jan  3 10:40:55 knifen kernel[0]: IOHIDSystem: postEvent LLEventQueue overflow.
Jan  3 10:41:50 knifen.local hidd[95]: IOHIDEventQueue unable to get policy for event of type 11. (e00002e8)
Jan  3 10:41:56 --- last message repeated 113 times ---

Realmente no me pregunto nada aquí, si tienes consejos, supongo que sería bueno. Parece ser una mala ingeniería por parte de Apple.

lericson
fuente

Respuestas:

4

Cuando el sistema operativo no tiene suficiente espacio en el disco, suceden cosas malas por diseño en un esfuerzo por tratar de mantener las partes críticas del sistema en línea el tiempo suficiente para permitir que ocurra un bloqueo controlado y que las aplicaciones con cambios para guardar sobrevivan hasta la actividad de limpieza empieza.

Es mucho menos probable que Mavericks asigne la cantidad total de RAM a / var / db / sleepimage, por lo que las personas acostumbradas a tener ese espacio preasignado pueden encontrarse con sorpresas cuando el sistema operativo necesita un poco de espacio para aumentar la imagen del sueño si las condiciones de funcionamiento lo dictan.

El consejo principal sería preservar varios gigabytes de espacio libre en el volumen de arranque cuando tiene una carga de trabajo que hace hincapié en el sistema de memoria virtual y se ejecuta con la presión de la memoria en rojo.

Aquí están mis recomendaciones:

  • ¿A qué escala o medida se adhiere la "presión de memoria" de Mavericks y Yosemite? tiene buena información sobre el monitoreo y la presión de memoria en el comando
  • arranque su sistema, inicie sesión en un usuario, salga de todas las aplicaciones
  • Abra el monitor de actividad y observe / grabe la pantalla de memoria
  • pon la máquina a dormir y despiértala 30 segundos después
  • ejecute sudo du -sm /var/vm/*y observe qué tan grande es su archivo de imagen de suspensión, así como si se han creado archivos de intercambio en el disco.

Lo ideal sería tener suficiente espacio libre en el disco para que coincida con su huella de memoria total si tiene la intención de ejecutar programas que llevan el sistema de memoria virtual al territorio amarillo para presionar la memoria. Probablemente no necesitará todo ese espacio solo para el sistema operativo, pero especialmente si obtiene errores de memoria de la máquina como los que está enumerando, la carga de trabajo que está ejecutando necesita un poco más de espacio libre para crecer de lo que está permitiendo.

Además, si considera que el ajuste del sistema es incorrecto, puede presentar fácilmente un informe de error al ejecutar sysdiagnosedespués de un inicio limpio como se describe anteriormente, una vez más cuando el sistema ejecuta la carga de trabajo prevista correctamente y una última sydiagnoseejecución una vez que haya causado la memoria asignaciones para comenzar a romper el sistema. Es posible que Apple haya tomado mejores decisiones, pero también podría ser que su software tenga fallas en la memoria y que el sistema no funcione como estaba previsto cuando se agotaron los recursos finitos. Sin más detalles, es difícil saber cuál es el caso.

bmike
fuente
2

"shmem" es memoria compartida y OS X no puede asignar memoria compartida. Por lo tanto, parece que la computadora se ha quedado sin memoria, tanto RAM como memoria del disco duro. ¿Es este el caso? En el momento de la congelación, parecía que quedaba aproximadamente 1 GB de espacio.

  • Libere espacio en disco eliminando archivos
  • Libere memoria cerrando aplicaciones

En este caso en particular, los registros indicaron más tarde que Spotlight había estado tratando de indexar un volumen de paquete disperso montado, lo que provocó que el disco de respaldo se quedara sin espacio.

lericson
fuente