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


21

Después de un día de trabajo en mi MacBook Pro con Mac OS X 10.6.5, Activity Monitor muestra que la mayoría de los 8 GB de memoria de mi computadora están "Inactivos", y solo una pequeña porción del gráfico circular es "Gratis". Esto es incluso cuando he cerrado todas las aplicaciones, con solo el Finder ejecutándose.

Qué significa eso? ¿La memoria "inactiva" está ocupada por algo? ¿O todavía está disponible para que las aplicaciones lo usen? Gracias.


Respuestas:


27

OS X, como la mayoría de los sistemas operativos modernos, utiliza un sistema de memoria virtual para administrar la memoria. Entre otros propósitos, esto permite que el sistema operativo trate la computadora como si tuviera un grupo ilimitado de memoria. Para lograr esto, el sistema operativo enviará las partes de RAM no utilizadas a un almacén de discos conocido como swapfile .

Por supuesto, la RAM no es ilimitada, por lo que OS X agrupa la RAM en cuatro categorías: cableada, activa, inactiva y gratuita. El sistema operativo requiere memoria cableada y nunca se puede paginar sin memoria. La memoria activa es la memoria utilizada por los programas que se ejecutan actualmente. La memoria inactiva fue utilizada recientemente por programas que ahora han sido terminados (o no han sido utilizados en mucho tiempo). La memoria libre es, como su nombre indica, RAM que no se está utilizando.

Cuando inicia un programa, se carga en la memoria activa. Sin embargo, cuando cierra un programa, no se elimina de la RAM; más bien, se encuentra con la memoria inactiva. Es por eso que a menudo es más rápido relanzar un programa: todavía está en la RAM (intente esto con un gran programa como Firefox).

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

Si un programa se localiza en el archivo de intercambio, y lo reinicia, se extraerá del archivo de intercambio a la memoria activa.

En resumen, en realidad no debería preocuparte si tu memoria libre es baja. De hecho, desea que tenga poca memoria libre: memoria desperdiciada (ya que el sistema operativo no la está utilizando para nada).

Al examinar la cantidad de memoria que usa su computadora, en realidad desea prestar atención principalmente a Swap utilizado , que le indica el tamaño del archivo de intercambio de memoria virtual, y Page ins , que le dice con qué frecuencia el sistema operativo tiene que extraer la memoria del archivo de intercambio en memoria activa.


2
Considero que las salidas de página son un mejor indicador del uso de intercambio que las entradas de página, porque las entradas de página incluyen la carga de programas y la carga desde el archivo de intercambio.
Gordon Davisson el

1
¡En Activity Monitor, mi tamaño de VM es más de 160 GB! ¿Hay algún tipo de archivo de intercambio en mi computadora que sea realmente tan grande?
hpy

1
@penyuan: No. Eso es teóricamente qué tan grande podría ser el archivo de intercambio , pero el tamaño real del archivo de intercambio está etiquetado como Swap utilizado en el Monitor de actividad.
mipadi

1
La memoria inactiva es, en parte, como usted dice, aunque específicamente una caché del sistema de archivos o bibliotecas a la que una aplicación puede volver a acceder, pero también es bloques de memoria de las aplicaciones que se ejecutan actualmente que se han asignado pero no se ha accedido en algún período de tiempo (no estoy seguro del tiempo exacto). El kernel los marca como Inactivos para priorizarlos para paginar en el disco si la cantidad de memoria libre cae demasiado.
drfrogsplat

2
@deceze: la memoria inactiva se busca. La memoria activa se mueve a inactiva cuando ya no es necesaria. Supongo que si tiene tan poca memoria que no hay espacio para la memoria inactiva, la memoria activa se paginaría directamente en el disco, pero esa es una circunstancia especial. De hecho, el archivo de intercambio teóricamente crece indefinidamente (hasta que no haya más espacio en disco), pero eso también es una ocurrencia extremadamente rara.
mipadi

9

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

Todos los sistemas operativos (¿la mayoría?) Utilizan un caché de disco, que almacena algunos archivos a los que se accedió recientemente en la memoria para que se pueda acelerar el acceso repetido de esos archivos. El caché de disco en OS X es de tamaño variable y aparecerá como "Memoria inactiva" en uso.

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

Me parece que si compilo o clasifico muchas fotos (es decir, accedo a miles de archivos en sucesión), la memoria caché del disco se expandirá y usará mucha memoria inactiva. Siempre que sea solo esta caché de disco, no hay de qué preocuparse.

Si se trata de un proceso en segundo plano o una aplicación que se está expandiendo en su uso de memoria (pero sus páginas se están marcando como inactivas), podrá saber si verifica cualquier programa con un uso muy alto de "Memoria Real" en Activity Monitor. Si no hay nada obviamente grande (es decir, el total es muy inferior a 8 GB), será el caché de archivos.

Debería ver que hay poco o ningún uso de intercambio, y si abre un programa de uso intensivo de memoria, la cantidad de memoria inactiva disminuirá sin tener que cambiar al disco.

(Creo que hubo un error en 10.4 o 10.5 durante un tiempo en el que no siempre liberaría esta memoria de manera muy efectiva y causaría un intercambio a pesar de tener una memoria caché de disco grande, pero en mi experiencia esto parece resuelto en 10.6).


La memoria inactiva es en realidad RAM, no memoria que ha sido paginada en el disco.
mipadi

3

La memoria "inactiva" está disponible para que la utilicen otros programas: solo se trata de almacenar en caché los programas o los datos que usó recientemente, en caso de que los necesite nuevamente. Si inicia diferentes programas o necesita datos diferentes, la memoria en caché se borrará y estará disponible para su nueva carga de trabajo según sea necesario.

Esa es la teoría, en cualquier caso, y creo que es acertada. 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 obtener documentación oficial sobre el tema, lea esto (y busque "inactivo").


Para el registro, mi MBP actualmente dice: 58 MB gratis, 239 MB con cable, 1.84 GB activos, 900 MB inactivos, y el sistema está funcionando bastante bien.
Michael H. el

1
Encuentro que el comando de purga es una herramienta de envío de Dios. Tener Photoshop + Firefox + Illustrator + Netbean + SmartGit puede hacer que un iMac de 4Gb se muera fácilmente. Por supuesto, Firefox es el principal culpable, pero si desea acelerar un poco las cosas, salga de Firefox y emita "purge &" Good as new again
Antony

2
La página de manual de Purge en realidad dice que fue escrita para vaciar la memoria caché del disco solamente (no memoria anónima: apilar, apilar o copiar al escribir) para el análisis de rendimiento (precisamente porque la memoria caché del disco acelera el sistema). No fue escrito para lanzarse más rápido, ya que ejecutarlo es más lento que el núcleo reclamando dinámicamente la memoria cuando sea necesario. Al cerrar una aplicación, se eliminan por completo todos los mem asignados, y si purgas después, la aplicación se carga más lentamente, visita linuxatemyram.com/play.html . Supongo que hay algo psicológico en la purga, igual que vaciar la basura compulsivamente.
Jano

1

Comenzando con OS X 10.5, hay problemas evidentes de administració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: administración de memoria rota

Ejecuto el comando tar + bzip, que es material básico de Unix, en la gran cantidad de archivos de imagen, en mi carpeta Imágenes /. Justo antes de comenzar, ejecuto el comando "purgar" para eliminar los datos del programa inactivos / en caché.

Puede ver en el video que la memoria libre comienza a caer muy rápido y que la inactividad aumenta constantemente. Si observa el comando "bsdtar", solo se necesita un fragmento de RAM, por lo que el problema no está en este proceso. No se puede decir que se trata de una pérdida de memoria del programa, porque el problema no estaría en la memoria RAM inactiva, sino en activa / cableada.

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

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

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


1
Algo de lo que describe puede formar la base de una pregunta diferente, pero no es una respuesta a esta pregunta.
Graham Perrin

2
Diría que su descripción de memoria libre que se reduce rápidamente al punto de ajuste y que el sistema acumula todo el resto de RAM no activa y cableada como inactiva es una indicación de que el sistema funciona exactamente como se diseñó. El hecho de que la gestión de la memoria sea diferente en un sistema operativo en comparación con otro no significa que tampoco esté roto. Las opciones de optimización siempre tienen un lado negativo.
bmike

0

Esta discusión tiene sentido solo si la afirmación de que "su computadora funcionará más rápido cuando la memoria libre es baja" - era cierta. A menos que mi Mac de escritorio tenga un cableado extraño, en el momento en que mi memoria libre (monitoreada) comienza a agotarse, cualquier programa que esté ejecutando en ese momento comienza a atascarse hasta el punto en que no puedo hacer nada hasta que se recupere por sí mismo o por mi intervención de memoria libre. Tengo un iMac 2118 (2006 o posterior) que alcanza un máximo de 3 GB de RAM, así que trato de administrarlo cuando puedo pero esto es muy frustrante. ¿Alguna idea?

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.