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 es 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?
La memoria inactiva recibió una crítica horrible debido a un nombre de mierda. Debería haberse llamado algo así como memoria "haz que tu Mac sea realmente rápida la segunda, tercera y cuarta vez que hace la misma tarea", excepto que ese 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 se documenta en este documento. versión de Monitor de actividad: https://support.apple.com/en-us/HT201538
Así es como le expliqué las cosas a alguien nuevo en el concepto de memoria virtual en OS X:
El problema surge cuando Free+Inactive es menos de aproximadamente 1/3 del total y entonces las cosas pueden volverse realmente lentas.
La memoria inactiva es velocidad adicional/RAM de doble función. Funciona como gratuito en cualquier momento, pero también hace que las tareas repetidas sean mucho, mucho más rápidas si el sistema adivinó correctamente y guardó algo en la RAM que volverá a hacer. Es más rápido que la memoria intercambiada porque ya está cargada en la RAM y acelera las cosas cuando el sistema de memoria virtual hace buenas conjeturas.
Cuando se pregunte si la RAM es un problema, en lugar de mirar cada una de las 4 categorías (5 si cuenta el intercambio activo), puede combinar W+A para ralentizar un nuevo programa/tarea y F+I para acelerar un nuevo programa/tarea. nuevo programa/tarea. Cuanto más F+I tenga, más programas nuevos podrá iniciar antes de que la RAM necesite depender del intercambio para hacer malabarismos con la memoria que se ha asignado.
Realmente no necesita 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 necesite hablar entre ellos para acordar quién usará menos memoria cuando se agote el sistema.
Aquí hay un ejemplo del mundo real de cómo se usa la RAM inactiva.
Debería ver aceleraciones dramáticas para el segundo / tercer lanzamiento a medida que el sistema aprende a mantener en RAM inactiva las cosas que estas dos aplicaciones necesitan para ejecutarse.
En su caso, el total de Conectado y Activo significa que es probable que se esté produciendo 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 necesitar para reutilizar . Si tiene una unidad SSD rápida, esta asignación de RAM está bien y en lugar de comenzar a ralentizarse una vez que menos de la mitad de su RAM es F+I, puede reducir las cosas más cerca de 1/4 de la RAM total para F +I antes de ver una lentitud notable. Estas pautas son generales, y querrá observar vm_stat 15
o algún intervalo similar para asegurarse de que el intercambio continuo y de volumen medio no haga que su Mac sea lenta.
El número que es más importante para determinar si su Mac está 'estresando' la memoria es la cifra de 'Salidas de página'. En Monitor de actividad en Mavericks esto ya no se muestra, ahora muestran la información en 'Intercambio usado:'.
Las salidas de página significan que el sistema operativo ha determinado que no hay suficiente RAM disponible para ejecutar todas las aplicaciones y procesos que se han solicitado. Lo que hace entonces es 'paginar' en el disco partes de la memoria que determina que no se están utilizando activamente. Esto significa que la memoria RAM (rápida) se cambia a memoria HDD (lenta). Si esto sucede con frecuencia porque hay muchas aplicaciones ejecutándose y el usuario está pasando de una aplicación a otra, entonces habrá muchas salidas y entradas de página.
Si ve que las salidas de página aumentan, debe tomar medidas.
El problema en mi Mac es que la memoria "inactiva" nunca parece purgarse 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 que ejecuta la última versión de Mountain Lion, NO es cierto que la memoria inactiva se recupere cuando la memoria libre se agote. 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!)
vm_stat
cuando sucede? ¿Qué te hace estar tan seguro de que puede haber "demasiada" memoria inactiva "para ejecutar cualquier cosa"? En lo que a mí respecta, todo esto son rumores que no tienen respaldo en el código que saben, en realidad se ejecuta en el kernel.Gracias a todos los posteadores y comentaristas, este ha sido un hilo instructivo y útil para mí. Mi experiencia reciente podría ser útil para alguien. Utilizo mi Mac Mini con OS X10.8.1 y con 16 GB de RAM exclusivamente para el software de creación de prototipos que se ejecutará en otro lugar. Puedo asegurarles que no "volveré a Facebook en unos minutos ni reiniciaré Word después de cerrarlo", sino que lo haré en mi macbook.
Mi tarea era juntar una gran cantidad de datos, la E/S consume mucho tiempo, por lo que la idea es leer la mayor cantidad posible de datos para ram de una sola vez, procesarlos allí y luego escribirlos nuevamente en el disco. , luego repita el proceso hasta que esté listo, lo que lleva algunas horas. Lo que veo es que cada vez que leo una nueva porción de datos, la memoria inactiva salta; supongo que la IA del sistema asume que es posible que desee volver a usar la porción anterior, lo cual no es así, y la libre gotas de memoria.
Después de algunas iteraciones de este proceso, la memoria libre se reduce a unos pocos MB, la memoria inactiva liberará algunos MB más y, finalmente, después de algunos minutos de discutir entre la memoria libre y la inactiva, la memoria inactiva se liberará. unos pocos GB a la vez. Todo es como lo 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 estado moviendo a la perfección, salgo a tomar un café oa cenar y no estoy monitoreando el proceso, y sucede lo que no debería suceder y el proceso repentinamente arroja un montón de páginas perdidas y se ralentiza. Estipule que probablemente sea mi código de mierda el que está causando el problema, pero desearía poder apagar la memoria inactiva solo para eliminar esa fuente de variabilidad. ¿Esta roto? No lo diría en absoluto, pero diría que supongo que la gestión de la memoria no está optimizada para mi caso de uso.
Memoria inactiva utilizada por aplicaciones recientemente activas y cerradas. OS X lo mantiene reservado por si el usuario quiere volver a abrir el programa. En su 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 de los inactivos se liberará o se reubicará. (c)
Esta característica es genial cuando tienes mucha RAM, pero cuando no la tienes, es bastante molesta. En realidad, se trata de cosas de Apple. Cuando tiene un dispositivo potente o Mac, todo es genial, pero cuando su dispositivo envejece, todas las funciones lo ralentizan.
Entonces tienes que usar trucos especiales para manejarlo.
Para la memoria inactiva hay un comando purge
para liberarla.
Básicamente está roto. La RAM inactiva debe "purgarse" automáticamente cuando la RAM libre es baja. ¿Cuál es el punto de retener RAM para aplicaciones abiertas anteriormente con la esperanza de que el usuario las abra nuevamente? El hecho de que la RAM libre sea baja indica que las aplicaciones ACTIVAS existentes podrían 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 debe purgarse o tomarse prestada automáticamente cuando la RAM libre es baja. Claramente este no es el caso.
vm_stat
consideras "no más RAM libre"? Cuando la Mac es "lenta", ¿para qué cuenta la entrada y salida de página vm_stat 1
? Cada vez que veo esto en un sistema problemático, me gusta vm_stat 15
ejecutarlo en una ventana de terminal (o iniciar sesión en el sistema de archivos) para poder saber con precisión cuál es la actividad de paginación al decidir si/cuándo ajustaré cosas como el buscapersonas. Este ejemplo tiene 100 MB de RAM libre, por lo que no es probable ni siquiera bajo presión de paginación.La memoria inactiva, en esencia, hace que la apertura de procesos anteriormente cerrados sea más rápida. Si encuentra que el sistema operativo Mac está ocupando demasiada memoria, realmente no necesita las docenas de pestañas que abrió en Safari o Chrome, simplemente use el comando 'purgar' en la Terminal. En OS X Mavericks simplemente use 'sudo purge' en su lugar (deberá ingresar su contraseña). Le quita preciosos segundos cuando necesita abrir algo nuevamente, pero si quiere jugar un juego intensivo de RAM o abrir una aplicación que consume RAM, definitivamente sugiero usar el comando de purga.
GusDeCool
bmike
duci9y
estilo
Josías
kbtz
Daniel
kbyrd
graham perrin
graham perrin
kbtz
jhfrontz
agenteatropellado
bmike
arco676
sudo
sudo
top
.JBis
bmike
JBis
sudo purge
(que aparentemente no tiene ningún propósito ), ¿qué hacen las aplicaciones que afirman limpiar y purgar la memoria? ¿Y son beneficiosos? (Tal vez sea una pregunta completamente nueva) Ejemplo: itunes.apple.com/us/app/memory-clean-free-up-memory/… itunes.apple.com/us/app/dr-cleaner-disk-mem-clean /…KM