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

9

Ocurre cada dos días y los síntomas son raros, como mínimo. La computadora todavía responde en cierto sentido; Puedo mover el mouse, los botones de volumen de mis auriculares funcionan. Sin embargo, el teclado no hace nada , tampoco hace clic. No se presentan estados flotantes. 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 Activity Monitor (nada extraño que se vea) pero al iniciar la Consola no fue posible. Cerrar aplicaciones dio resultados extraños hasta que finalmente dejó de responder al control remoto también. Curiosamente, la aplicación remota no creía haber perdido la conexión, por lo que de alguna manera todavía recibió y reconoció los comandos remotos.

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

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 estoy preguntando nada aquí, si tienes consejos, creo que eso sería bueno. Parece ser una mala ingeniería por parte de Apple.

    
pregunta lericson 03.01.2014 - 11:31

2 respuestas

4

Cuando el sistema operativo está privado de 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 como para permitir que ocurra un fallo controlado y potencialmente permitir que las aplicaciones con cambios para ahorrar sobrevivan hasta la actividad de limpieza comienza.

Es mucho menos probable que los Mavericks asignen 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 hacer crecer la imagen del sueño si las condiciones operativas lo exigen .

El consejo principal sería conservar varios gigabytes de espacio libre en el volumen de inicio cuando tenga una carga de trabajo que haga hincapié en el sistema de memoria virtual y se ejecute 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 comando
  • inicie su sistema, inicie sesión en un usuario, cierre todas las aplicaciones
  • abra el monitor de actividad y observe / grabe la pantalla de memoria
  • ponga la máquina en reposo y levántela 30 segundos después
  • ejecute sudo du -sm /var/vm/* y observe qué tan grande es su archivo de imagen de reposo y si se ha creado algún archivo de intercambio en el disco.

Deseará tener idealmente suficiente espacio en el disco libre para coincidir con su huella de memoria total si tiene la intención de ejecutar programas que llevan el sistema de memoria virtual a un territorio amarillo para la presión de la memoria. Probablemente no necesitará todo ese espacio solo para el sistema operativo, pero especialmente si está obteniendo errores en la memoria de la máquina como lo está haciendo, 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 cree que el ajuste del sistema es incorrecto, podría presentar fácilmente un informe de error ejecutando sysdiagnose después de un inicio limpio como se describió anteriormente, una vez más cuando el sistema ejecuta la carga de trabajo deseada correctamente y un último sydiagnose ejecute una vez que haya provocado que las asignaciones de memoria comiencen a romper el sistema. Es posible que Apple haya tomado mejores decisiones, pero también podría ser que su software tenga fallas de memoria y fugas y el sistema se esté rompiendo como estaba previsto cuando los recursos limitados se han agotado. Sin más detalles, es difícil decir cuál es el caso.

    
respondido por el bmike 03.01.2014 - 16:00
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 la memoria RAM como la memoria del disco duro. ¿Es este el caso? En el momento de la congelación, parecía que quedaba alrededor de 1 GB de espacio.

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

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

respondido por el lericson 03.01.2014 - 11:31

Lea otras preguntas en las etiquetas