Mac OS X: ¿Qué está usando mi memoria 'activa'?


7

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í:

Captura de pantalla

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. topy 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 pscalcula el comando.

ingrese la descripción de la imagen aquí

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.


Puede utilizar instrumentos para detectar fugas de memoria y grabar el monitoreo completo. Entonces, ¿por qué es difícil usarlo exactamente?
matthias krull

Porque las filtraciones ocurren en un par de horas. Ni siquiera estoy seguro de qué proceso monitorear, ya que la memoria acaba de desaparecer. El uso de instrumentos para encontrar fugas consume mucha CPU y memoria para hacer la grabación, lo que no es bueno para monitorear durante un largo período de tiempo.
BastiBen

Respuestas:


4

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 psy otras herramientas de línea de comando, puede profundizar en esto.

Primero, use las opciones para pslimitar lo que se muestra solo a la memoria residente y el nombre del comando. -mordena la salida por uso de memoria, -amuestra los procesos de todos los usuarios, -xmuestra los procesos no asociados con un terminal (es decir, la mayoría de las aplicaciones de Mac).

$ ps -axm -o "rss,comm" 

Aquí están las primeras líneas que veo:

   RSS COMM
210256 /Applications/Firefox.app/Contents/MacOS/firefox-bin
158276 /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
155360 /Applications/iTunes.app/Contents/MacOS/iTunes

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:

$ ps -axm -o "rss,comm" | awk 'BEGIN { s=0;}; {s=s+$1;}; END { printf("%.2f GB\n", (s/1024.0/1024));}'

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:

$ ps -axm -o "rss,comm" | awk 'BEGIN { c=0;s=0;}; ($1 > 100000) {c=c+1;s=s+$1;}; END { printf("%.2f GB from %d processes\n", (s/1024.0/1024),c);}'

0.98 GB from 8 processes

No te he dicho exactamente qué está usando la memoria de tu Mac, pero estas herramientas te ayudarán a descubrir.


Guau. Muchas gracias por esta guía. Reinicié mi Mac por ahora, pero estoy seguro de que mi memoria estará llena en poco tiempo nuevamente, así que puedo intentarlo. Mientras tanto, ¡ten un voto a favor!
BastiBen

Editado para incluir la -aopción de mostrar procesos propiedad de usuarios que no sean yo.
Doug Harris

Actualicé la publicación original para reflejar lo que descubrí hasta ahora.
BastiBen

1

man -k DTrace. Esas herramientas son las que resolverán esto. Buena suerte


0

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.


Intenté hacerlo antes, pero mi problema principal es que simplemente no hay procesos que ocupen tanta memoria.
BastiBen

En ese caso, el enfoque de Doug Harris puede permitirle hacer un análisis más detallado (por ejemplo, en una hoja de cálculo). Recomendaría hacer algún tipo de registro de cómo se ven las estadísticas cuando el sistema se reinició recientemente (ya sea registros de pssalida, 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.
Gordon Davisson

0

Para mí, parece que la memoria activa es solo memoria libre disponible para su reutilización, pero no marcada específicamente como "libre"


3
¿Fuente para ese "me parece"? Nos gustan las respuestas precisas, respaldadas por referencias.
vonbrand
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.