21 votos

¿Qué significa si tengo mucha memoria "Inactiva" al final de un día de trabajo?

Después de un día de trabajo en mi MacBook Pro con Mac OS X 10.6.5, el Monitor de Actividad muestra que la mayor parte de los 8 GB de memoria de mi ordenador están "Inactivos", y sólo una pequeña porción del gráfico circular está "Libre". Esto ocurre incluso cuando he cerrado todas las aplicaciones, con sólo el Finder en funcionamiento.

¿Qué significa eso? ¿La memoria "Inactiva" está ocupada por algo? ¿O está realmente disponible para que las aplicaciones la utilicen? Gracias.

27voto

AnonJr Puntos 111

OS X, como la mayoría de los sistemas operativos modernos, utiliza un memoria virtual sistema de gestión de la memoria. Entre otras cosas, esto permite que el sistema operativo trate al ordenador como si tuviera una reserva ilimitada de memoria. Para conseguirlo, el sistema operativo pagará las partes no utilizadas de la RAM a un almacén de disco conocido como archivo de intercambio .

Por supuesto, la RAM no es ilimitada, por lo que OS X agrupa la RAM en cuatro categorías: conectada, activa, inactiva y libre. Conectado es requerido por el sistema operativo, y nunca puede ser paginado fuera de la memoria. Activo es la memoria utilizada por los programas en ejecución. Inactivo la memoria ha sido utilizada recientemente por programas que ya han finalizado (o no han sido utilizados en mucho tiempo). Gratis es, como su nombre indica, la memoria RAM que no se está utilizando.

Cuando se lanza un programa, éste se carga en la memoria activa. Sin embargo, cuando se sale de un programa, éste no se elimina de la RAM, sino que pasa a la memoria inactiva. Por eso, a menudo es más rápido relanzar un programa, ya que todavía está en la memoria RAM (pruébalo con un programa grande como Firefox).

Una vez que se utiliza toda la memoria (la memoria libre es 0), el SO escribirá la memoria inactiva en el archivo de intercambio para hacer más espacio en la memoria activa.

Si un programa es paginado al archivo de intercambio, y usted lo relanza, será extraído del archivo de intercambio a la memoria activa.

En resumen, no debería importarle que su memoria libre sea baja. De hecho, quieres que sea baja - la memoria libre es memoria desperdiciada (ya que el SO no la está usando para nada).

Al examinar la cantidad de memoria que utiliza su ordenador, en realidad quiere prestar atención sobre todo a Intercambio usado que indica el tamaño del archivo de intercambio de memoria virtual, y Página ins que indica la frecuencia con la que el sistema operativo tiene que tirar de la memoria del archivo de intercambio a la memoria activa.

9voto

Shuft Puntos 420

Lo más probable es que esto no sea un problema, y de hecho está acelerando potencialmente su ordenador.

Todos (¿la mayoría?) los sistemas operativos utilizan una caché de disco, que almacena en memoria algunos archivos a los que se ha accedido recientemente, de modo que se puede acelerar el acceso repetido a esos archivos. La caché de disco en OS X es de tamaño variable, y aparecerá como "Memoria Inactiva" siendo utilizada.

Si algún programa necesita más memoria, OS X borrará parte de la caché del disco (los archivos menos usados recientemente) para dejar espacio para que el programa se ejecute/expanda.

Me parece que si hago mucha compilación o clasificación de fotos (es decir, acceder a miles de archivos en sucesión) la caché de disco se expandirá y utilizará una gran cantidad de memoria inactiva. Siempre que se trate sólo de esta caché de disco, no hay que preocuparse.

Si se trata de un proceso en segundo plano o de una aplicación que está ampliando su uso de memoria (pero sus páginas están siendo marcadas como inactivas), entonces podrás saberlo comprobando si hay algún programa con un uso muy alto de "Memoria Real" en el Monitor de Actividad. Si no hay nada obviamente grande allí (es decir, el total está muy lejos de 8GB) entonces será la caché de archivos.

Deberías ver que hay poco o ningún uso de Swap, y si abres un programa de uso intensivo de memoria, la cantidad de memoria inactiva disminuirá sin tener que hacer swap al disco.

(Creo que hubo un error en 10.4 o 10.5 durante un tiempo en el que no siempre se liberaba esta memoria de forma muy efectiva, y causaba swapping a pesar de tener una gran caché de disco, pero en mi experiencia esto parece resuelto en 10.6).

3voto

trent Puntos 2940

La memoria "inactiva" está disponible para que la utilicen otros programas: sólo almacena en caché los programas o datos que has utilizado recientemente, por si los vuelves a necesitar. Si lanzas otros programas o necesitas otros datos, la memoria caché se borrará y se pondrá a disposición de tu nueva carga de trabajo según sea necesario.

Esa es la teoría, en cualquier caso, y creo que es sólida. Sin embargo, encontré esta referencia a una utilidad de "purga" que alguien escribió porque no creía que la memoria inactiva se liberara lo suficientemente rápido.

Para la documentación oficial sobre el tema, leer esto (y busque "inactivo").

1voto

egremyl Puntos 19

A partir de OS X 10.5 existen evidentes problemas de gestión de memoria en MAC OS X.

Finalmente logré reproducir el escenario problemático, así que ejecuté la prueba y grabé la pantalla, en video.

Problema de rendimiento de MAC OS X Lion - gestión de la memoria rota

Ejecuto el comando tar+bzip, que es algo básico de unix, en la gran cantidad de archivos de imágenes, en mi carpeta Pictures/. Justo antes de empezar, ejecuto el comando "purge", para borrar los datos inactivos/de los programas en caché.

Puedes ver en el vídeo que la memoria libre empieza a caer muy rápido, y la inactiva está en constante aumento. Si echas un vistazo al comando "bsdtar", este toma solo un fragmento de RAM, por lo que el problema no está en este proceso. No puedes decir que es una fuga de memoria del programa, porque entonces el problema no estaría en la ram inactiva, sino en la activa/cableada.

Cuando la memoria libre cayó por debajo de los 100mb, inicié algunas aplicaciones, como Safari, iPhoto y MS Word, y puedes ver en el vídeo, que tarda incluso minutos en iniciar una aplicación, cuando normalmente (cuando hay RAM libre), tardaría unos 3-5 segundos en cargar.

Ejecuto el mismo escenario y los mismos comandos en mi caja Linux Centos 6, ¡no hay problema! El uso de la memoria es de unos 10-20mb, no hay problemas con la caché / buffer.

¡La gestión de la memoria debe estar muy rota en Mac OS X !

0voto

webbglider Puntos 1

Esta discusión sólo tiene sentido si la afirmación de que "su ordenador funcionará más rápido cuando la memoria libre sea baja" - fuera cierta. A no ser que mi Mac de sobremesa esté conectado de forma extraña, en el momento en que mi memoria libre (monitorizada) empieza a bajar, cualquier programa que esté ejecutando en ese momento empieza a atascarse hasta el punto de que no puedo hacer nada hasta que vuelve a subir por sí mismo o por la intervención de mi memoria libre. Tengo un iMac 2118 (2006 o posterior) que tiene un máximo de 3 GB de RAM, así que trato de administrarla cuando puedo, pero esto es muy frustrante. ¿Alguna idea?

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