Estoy usando un MacBook Pro reciente con 8 GB de RAM y después de unas horas de usarlo en el trabajo noto que la cantidad de memoria 'activa' crece y crece.
Cada vez que reinicio mi Mac, todo se ve bien y apenas usa RAM. Pero después de unas horas se ve así:
Como puede ver, en este caso se trata de 4,3 GB.
Como desarrollador, sé que 'memoria activa' es la cantidad de memoria que actualmente utilizan los procesos en ejecución. Entonces, lo primero que hice fue cerrar todas las aplicaciones y eliminar todos los procesos que no parecen pertenecer a Mac OS X.
Después de hacer eso, mi memoria activa se redujo a unos 400 MB, pero se atascó en lo que ves en la captura de pantalla. No hay más procesos o aplicaciones para salir.
Ahora me pregunto qué es lo que realmente está guardando en la memoria. top
y Activity Monitor no informan ningún proceso con un uso elevado de memoria.
¿Algunas ideas?
¡Gracias!
Actualización 1:
Gracias a la respuesta de Doug Harris hice esta captura de pantalla. Muestra un uso de memoria activa de 2.55 GB en todo el sistema, pero solo un uso de memoria de 1.55 GB que ps
calcula el comando.
No estoy seguro de dónde se ha ido el resto de los 2,55 GB o dónde está asignado. Tengo Instrumentos instalados, pero como esto sucede en un lapso de unas pocas horas, es difícil usar Instrumentos. Esto se siente como una pérdida de memoria en algún lugar del sistema operativo. Tal vez un controlador (aunque no tengo ninguna extensión de kernel instalada, comprobado con kextstat
).
Personalmente, creo que sería interesante poder ver "más" sobre el estado de administración de memoria. Bajo Linux hay alguna información disponible bajo "/ proc", afaik.
fuente
Respuestas:
Aunque no hay un solo proceso que tenga un uso elevado de la memoria, todavía hay muchos procesos en ejecución, todo eso suma.
Usando
ps
y otras herramientas de línea de comando, puede profundizar en esto.Primero, use las opciones para
ps
limitar lo que se muestra solo a la memoria residente y el nombre del comando.-m
ordena la salida por uso de memoria,-a
muestra los procesos de todos los usuarios,-x
muestra los procesos no asociados con un terminal (es decir, la mayoría de las aplicaciones de Mac).Aquí están las primeras líneas que veo:
No me sorprende que estos estén en la parte superior (y el proceso de Chrome que se muestra es uno de los muchos). La columna RSS se expresa como bloques de 1024 bytes. Entonces, iTunes usa aproximadamente 151.7 MB.
Ese resultado está formateado lo suficientemente bien como para que pueda arrojarlo a una hoja de cálculo para su análisis si le gusta analizar las cosas de esa manera. Me quedaré un poco más en la línea de comando
Encadena un montón más para ver la suma de todos los procesos:
El resultado que veo para eso es
2.44 GB
, no exactamente lo que veo para la memoria activa en el Monitor de actividad, pero lo suficientemente cerca como para que pueda usar ps para llegar al fondo de esto.Puede agregar solo esos procesos con más de 100 MB:
No te he dicho exactamente qué está usando la memoria de tu Mac, pero estas herramientas te ayudarán a descubrir.
fuente
-a
opción de mostrar procesos propiedad de usuarios que no sean yo.man -k DTrace. Esas herramientas son las que resolverán esto. Buena suerte
fuente
Parece que uno de los procesos del sistema es la pérdida de memoria (ya sea eso o un número creciente de procesos del sistema se están ejecutando por alguna razón). Puede verificar esto directamente en el Monitor de actividad cambiando el menú emergente en la barra de herramientas de Mis procesos a Todos los procesos, luego ordene por la columna Real Mem. Busque procesos que usen mucha memoria real y / o muchas instancias del mismo nombre de proceso. Esto no resolverá el problema, pero al menos debería darte una idea de dónde viene.
fuente
ps
salida, capturas de pantalla de Activity Monitor, lo que sea) para que tenga algo con qué comparar cuando el sistema ha estado funcionando por un tiempo usando mucha memoria. Encuentre los cambios en la lista de procesos a medida que se ejecuta, y debería indicarle el problema.Para mí, parece que la memoria activa es solo memoria libre disponible para su reutilización, pero no marcada específicamente como "libre"
fuente