¿La memoria inactiva no es un desperdicio de recursos?

85

Estoy buscando una explicación del uso de la memoria en mi máquina, especialmente a la luz del ejemplo en esta captura de pantalla a continuación:

Entiendo lo que significa Free y Active significa
Pero, ¿cuáles son los significados de Wired y Inactive ?

Especialmente inactive , ¿por qué usa tanta memoria para algo que no usamos?

    
pregunta GusDeCooL 11.10.2012 - 13:54

7 respuestas

141

La memoria inactiva tiene un rap horrible debido a un nombre de mierda. Debería haberse llamado algo así como "haz que tu Mac sea realmente rápida la segunda, tercera y cuarta vez que hace la misma tarea" en la memoria, excepto que también es un nombre horrible.

Apple reescribió el monitor de actividad cuando introdujo varias características nuevas y agregó memoria comprimida, por lo que parte de esto ya no se aplica a macOS que no muestra "Memoria inactiva", pero esto aún se aplica a la administración de memoria de Mac OS X como documentado contra esta versión de Activity Monitor: enlace

Así es como expliqué las cosas a alguien nuevo al concepto de memoria virtual en OS X:

  • Cableado : el sistema no puede ejecutarse sin esta cantidad de RAM (nunca intercambiada)
  • Activo: los programas realmente están usando esta memoria ahora o en los últimos segundos
  • Inactivo: cosas que los programas han leído del disco lento o en otro lugar y dicen que nunca más lo necesitan. Los ingenieros saben mejor, volverá a Facebook en unos minutos o volverá a lanzar Word después de salir. Las mismas cosas pasan una y otra vez en las computadoras.
  • Gratis: RAM totalmente desaprovechada : el sistema solo necesita uno o dos MB gratis para cubrir las solicitudes de asignación a corto plazo. Para las asignaciones más grandes, simplemente utiliza parte de la RAM inactiva asignándola a activo / cableado y eliminando la información sobre lo que solía mantener.

El problema surge cuando Libre + Inactivo es menos de aproximadamente 1/3 del total y entonces las cosas realmente pueden volverse lentas.

La memoria inactiva es RAM de velocidad adicional / doble función. Sirve como gratuita en cualquier momento, pero también hace que las tareas repetidas sean mucho más rápidas si el sistema adivinó correctamente y mantuvo algo en la RAM que lo haré de nuevo Es más rápido que la memoria intercambiada, ya que ya está cargada en la memoria RAM y acelera las cosas cuando el sistema de memoria virtual hace buenas conjeturas.

Cuando se pregunta si la RAM es un problema, en lugar de ver cada una de las 4 categorías (5 si cuenta el intercambio activo), puede acoplar W + A para ralentizar un nuevo programa / tarea y F + I como Acelerando un nuevo programa / tarea. Cuanto más F + I tenga, más programas nuevos podrá iniciar antes de que la RAM deba confiar en el intercambio para hacer malabarismos con la memoria asignada.

Realmente no necesitas saber cómo funciona el intercambio ya que lo mencioné anteriormente. Básicamente, cuando un programa está inactivo y no se ha utilizado durante días (u horas), el sistema escribirá esa memoria RAM en el disco duro en lugar de eliminar el programa. Esto permite que el sistema mezcle y maneje todo tipo de cosas relacionadas con la administración de la memoria y evita que cada programa tenga que hablar entre ellos para acordar quién usará menos memoria cuando el sistema se agote.

Este es un ejemplo del mundo real de cómo se usa la RAM inactiva.

  1. Salga de todas las aplicaciones y asegúrese de que las dos aplicaciones que estamos probando no estén configuradas para iniciarse automáticamente cuando inicie sesión
  2. Reinicia tu Mac
  3. Encienda su Monitor de actividad y observe la memoria RAM en todo
  4. tiempo que tarda en iniciar la aplicación A (MS Word sería una buena opción)
  5. Salir de A
  6. tiempo que tarda en iniciar la aplicación B (algo de Adobe también sería bueno)
  7. Salir B
  8. Tiempo que tarda el segundo lanzamiento de A
  9. Salir de A
  10. Segundo lanzamiento de la hora B.
  11. El tiempo A comienza la tercera vez con B en ejecución.

Debería ver aumentos de velocidad dramáticos para el segundo / tercer lanzamiento, ya que el sistema aprende a mantener en la memoria RAM inactiva las cosas que estas dos aplicaciones necesitan ejecutar.

En su caso, el total de cableado y activo significa que es probable que se produzca algún cambio en el disco y que su Mac no sea tan rápida como podría ser, ya que su RAM inactiva no es lo suficientemente grande como para almacenar todas las cosas que podría Necesito reutilizar. Si tiene una unidad SSD rápida, esta asignación de RAM está bien y en lugar de disminuir la velocidad una vez que menos de la mitad de su RAM sea F + I, puede reducir las cosas como 1/4 de la RAM total para F + Yo antes de ver notable lentitud. Estas pautas son generales y querrá ver vm_stat 15 o algún intervalo similar para garantizar que el intercambio continuo y de volumen medio no haga que su Mac sea lenta.

    
respondido por el bmike 11.10.2012 - 15:46
6

El número que es el más importante para determinar si tu Mac está "estresada" en la memoria es la cifra de "Salidas de página". En el Monitor de actividad en Mavericks esto ya no se muestra, ahora muestran la información en 'Swap Used:'.

Salidas de página significa que el sistema operativo ha determinado que no hay suficiente RAM disponible para ejecutar todas las aplicaciones & Procesos que se han solicitado. Lo que hace entonces es que las páginas salen a las partes del disco de la memoria que determina que no están siendo utilizadas activamente. Esto significa que la memoria RAM (rápida) se cambia a memoria HDD (lenta). Si esto sucede mucho porque hay muchas aplicaciones en ejecución, y el usuario va de una aplicación a otra, habrá muchas salidas de página y entradas de página.

Si ve que las salidas de página aumentan, debería actuar.

    
respondido por el FromOZ 26.10.2013 - 18:21
4

El problema en mi Mac es que la memoria "inactiva" nunca se purga a menos que haga una purga manual en la ventana de comandos. Se acumula y se acumula hasta que aparece una ventana emergente que me dice que elimine las aplicaciones. Incluso después de eliminar todas mis aplicaciones, todavía tengo demasiada memoria inactiva para ejecutar cualquier cosa. Por lo tanto, en mi Mac con la última versión de Mountain Lion NO es cierto que la memoria inactiva se recupere cuando la memoria libre disminuye. O tengo una aplicación en algún lugar que ha bloqueado una parte de la memoria inactiva que nunca se libera, o el iOS tiene un error. (Tengo 8 GB de memoria física ... ¡eso debería ser suficiente!)

    
respondido por el Ernie 25.07.2013 - 17:34
2

Gracias a todos los carteles y comentaristas, este ha sido un hilo instructivo y útil para mí. Mi experiencia reciente podría ser útil para alguien. Uso mi Mac Mini con OS X10.8.1 y con 16G RAM por completo para el software de creación de prototipos que se ejecutará en otros lugares. Les puedo asegurar que no "volveré a Facebook en unos minutos ni volveré a lanzar Word después de dejarlo", sino que lo hago en mi macbook.

Mi tarea consistía en mezclar una gran cantidad de datos, la E / S requiere mucho tiempo, por lo que la idea es leer la mayor cantidad posible de datos para incluirlos en un solo golpe, procesarlos allí y luego escribirlos Vuelva al disco, luego repita el proceso hasta que termine, lo cual toma algunas horas. Lo que veo es que cada vez que leo en una nueva porción de datos, la memoria inactiva salta (supongo que la AI del sistema asume que podría querer volver a usar la vieja porción, que no lo hago) y la versión gratuita. gotas de memoria

Después de algunas iteraciones de este proceso, la memoria libre se reduce a solo unos pocos MB, la memoria inactiva liberará unos pocos MB más, y luego, eventualmente, después de algunos minutos de recuperación entre la memoria libre e inactiva, la memoria inactiva liberará unos pocos GB a la vez. Todo es como describe @bmike, y tanto vm_stat 15 como el monitor de actividad muestran 0 salidas de página.

Excepto tal vez no del todo. Varias veces las cosas se han ido moviendo, me voy a tomar un café o una cena y no estoy monitoreando el proceso, y lo que no debería suceder sucede y el proceso de repente desborda un montón de páginas y se ralentiza. Estipule que probablemente sea mi código de mierda el que está causando el problema, pero me gustaría poder desactivar la memoria inactiva solo para eliminar esa fuente de variabilidad. ¿Esta roto? No lo diría en absoluto, pero diría que creo que la administración de la memoria no está optimizada para mi caso de uso.

    
respondido por el user100345 06.08.2014 - 04:52
0
  

Memoria inactiva utilizada por aplicaciones recientemente activas y cerradas. OS X lo mantiene reservado en caso de que el usuario quiera abrir el programa nuevamente. En este caso, OS X no necesita reubicar la memoria que acelera la velocidad de rendimiento. Si no vuelve a abrir el programa, después de un tiempo, la memoria del inactivo se liberará o reubicará. (C)

Esta característica es genial cuando tienes mucha memoria RAM, pero cuando no lo es, es bastante molesto. En realidad todo se trata de cosas de manzana. Cuando tienes un potente gadget o Mac, todo está bien, pero cuando el dispositivo envejece, todas las funciones lo reducen.

Así que tienes que usar trucos especiales para administrarlo.

Para la memoria inactiva hay un comando purge para liberarla.

    
respondido por el A. Shulev 02.11.2015 - 18:03
-3

Básicamente está roto. La RAM inactiva se debe "purgar" automáticamente cuando la RAM libre es baja. ¿Cuál es el punto de mantener RAM para aplicaciones abiertas con la esperanza de que el usuario la abra de nuevo? El hecho de que la RAM libre sea baja indica que las aplicaciones ACTIVE existentes pueden no tener suficiente RAM y se están intercambiando AHORA. Mantener GB de RAM para aplicaciones cerradas es simplemente tonto. Según la propia descripción de Apple, la RAM inactiva se debe purgar o tomar prestada automáticamente cuando la RAM libre es baja. Claramente este no es el caso.

    
respondido por el rouser 01.02.2013 - 03:15
-4

La memoria inactiva en esencia, hace que la apertura de procesos anteriormente cerrados sea más rápida. Si descubre que el sistema operativo de Mac está ocupando demasiada memoria que realmente no necesita, como las docenas de pestañas que abrió en Safari o Chrome, simplemente use el comando 'purgar' en la Terminal. En OS X Mavericks solo use 'sudo purge' (tendrá que ingresar su contraseña). Se afeita en preciosos segundos cuando necesitas abrir algo de nuevo, pero si quieres jugar a un juego intensivo de RAM o abrir una aplicación con hambre de RAM, definitivamente sugiero usar el comando de purgar.

    
respondido por el Kaness K 28.10.2013 - 14:29

Lea otras preguntas en las etiquetas