3 votos

Un montón de memoria inactiva después de ver HD/películas de DVD

Soy el dueño de mediados de 2010 iMac (core i7) con 16GB de memoria instalada.
Normalmente, Mac OS X (SL y Lion) nunca se usa swap (que es la página ins/outs = 0), hay siempre 3-8 gb libres de memoria.
Pero después de ver un par de DVD/h264 películas, sólo hay 50-100*MB* de libre de la memoria y swap se utiliza activamente. Se parece a los archivos de vídeo se asignan en la memoria del sistema, ya que la cantidad de inactivos de la memoria ~= tamaño de los archivos. La única solución es utilizar purge de utilidad.

Estoy buscando una solución que es mejor que correr purge cada vez que veía una película.

tiempo de actividad:

4:08  up 3 days,  7:35, 5 users, load averages: 0,71 0,76 0,71

vm_stat:

Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                         738409.
Pages active:                      1715722.
Pages inactive:                     536891.
Pages speculative:                  857329.
Pages wired down:                   344323.
"Translation faults":           1067897384.
Pages copy-on-write:               6068992.
Pages zero filled:               591232281.
Pages reactivated:                 1906255.
Pageins:                           5019598.
Pageouts:                           861857.
Object cache: 16 hits of 1354202 lookups (0% hit rate)

3voto

Gareth Jenkins Puntos 1480

Lo que estamos viendo es normal, y el comportamiento deseado.

OS X, como Linux y BSD, tiene un caché de disco. Esto significa que cualquier cosa que leer o escribir en el disco se mantiene en la memoria. El "Inactivo" la memoria incluye este caché de disco.

Esta respuesta en AskDifferent explica, como lo hace este post en macosxhints.com:

Sin embargo, X fundamentos (es decir, la ONU*X del kernel) proporcionan estos características sin ningún tipo de insumos que se necesitan por el usuario. Se llama el sistema de archivos de la caché del búfer. La diferencia más significativa es que el tamaño de este buffer caché es dinámica. Comienza con algo pequeño tamaño y puede crecer y encogerse como en el i/o demandas de los y las Aplicaciones de la memoria los requisitos varían a lo largo del tiempo.

Se llama un 'buffer caché", ya que los búferes de los datos de e/s en su camino hacia o desde el disco. Cuando una Aplicación se escribe datos primero será depositados en las Aplicaciones de archivo de memoria de búfer de la región y se posteriormente, se solicitó a través de rutinas de la biblioteca para tener el kernel (el OS) copia de la Aplicación del búfer a disco. El kernel va a obligar y se copia primero a su búfer -- el sistema de archivos de la caché del búfer. Si el núcleo requiere más espacio en su búfer de caché va a obtener a partir de la memoria libre. Cuando esto sucede, el valor de la memoria libre, en decir la Terminal del comando superior, de inmediato mostrar una reducción de libre memoria. En algún momento posterior el kernel va a copiar los datos (se refiere tiene buffers modificados) para la ubicación de disco. Yo creo que el la frecuencia de esta operación es de 30 segundos -- llamado sync-ción a disco.

Tenga en cuenta que tener memoria paginada con el disco, no es siempre una mala cosa. Si las páginas de memoria completamente inactivo, paginación a disco puede mejorar el rendimiento, debido a que está perdiendo la memoria RAM que de otro modo podrían ser utilizados para el caché de disco. Una vez que se paginan y dejar de ver películas, cuando necesitan ser paginado de nuevo, automáticamente la sustitución de los amortiguadores y la caché de disco. Usted no necesita ejecutar purge cada vez. Sólo vamos a OS X gestionar la caché de disco ya que fue diseñado para hacer.

Para obtener más información sobre esto, consulte el artículo de la wikipedia sobre la paginación, y el artículo en la Página de la caché.


TL;DR de la información:

He aquí un artículo que describe cómo swap funciona bajo Linux. Aunque no es 100% aplicable a OS X, el concepto es el mismo. Voy a citar la parte pertinente:

Cuando una aplicación necesita de la memoria y toda la RAM está totalmente ocupada, el núcleo tiene dos formas de liberar algo de memoria a su disposición: puede reducir la caché de disco en la memoria RAM mediante la eliminación de los datos más antiguos o puede intercambiar algunos menos utilizado porciones (páginas) de los programas para la partición swap en el disco. No es fácil predecir cuál sería el método que ser más eficiente. El kernel hace una elección por aproximadamente adivinar la la efectividad de los dos métodos en un instante dado, basado en la la historia reciente de la actividad

Puesto que usted está viendo un DVD o una película, el activo más recientemente las páginas en la memoria caché del disco, por eso OS X decide mantener que en la memoria RAM y swap de páginas de memoria que han sido inactivo desde antes de empezar a acceder a los archivos de vídeo. Una vez que usted deja de acceder a los archivos de vídeo y acceso a los programas mediante el uso de las páginas de memoria que se intercambia, el contrario es verdad: OS X descartará la caché de disco que contiene los datos de vídeo y reemplazarla con las páginas de memoria que se intercambia. A continuación, el intercambio en el uso de disminución.

Aquí un poco más de información, específica para FreeBSD (que es similar a la de Mac OS X):

FreeBSD utiliza el "todo de la memoria" para el caché de disco. Lo que esto significa es que el 'libre' cubo normalmente contiene sólo un par de páginas. Si el sistema se ejecuta, puede crear más páginas de la caché cubeta.

La actividad del sistema funciona así: Cuando un programa activamente hace referencia a un página en un archivo en el disco (etc...) la página se pone en el caché del búfer a través de un físico de e/S de operación. Se dirige a la 'activo' cubo. Si un programa deja de hacer referencia a la página, la página de se extiende lentamente hacia abajo en la inactivos o caché de cubos (dependiendo de si es sucio o no). Las páginas de a poco se 'limpia' por la escritura a su almacén de respaldo y se trasladó de inactivo a caché, y caché de páginas son liberados como sea necesario para mantener un número mínimo de verdaderamente libre páginas en la libre de la cubeta. Estas páginas pueden ser aún 'limpia', mediante la asignación de intercambio como su almacén de respaldo, lo que les permite migrar a través de los cubos y, finalmente, ser reutilizados.

[...]

La VM de búfer de caché almacena en caché todo el almacenamiento subyacente de modo que, por ejemplo, no sólo de la caché de los bloques de datos asociados con un archivo pero en la memoria caché los inodos y bloques de mapa de bits de bloques así. La mayoría de los sistema de archivos de operaciones de ir muy rápido, incluso para triple-indirecta bloque de búsquedas y tal

[...]

FreeBSD tiene sin duda algunas de las mejores de intercambio de código en existencia. Yo personalmente me gusta es mejor que Linux. Linux es más ligero en el intercambio, sino no equilibrio de la memoria del sistema la utilización de los recursos bien bajo diferentes las condiciones de carga. FreeBSD.

FreeBSD notas de la inutilidad de las páginas existentes en la memoria, y decide que podría ser ventajoso para liberar memoria (habilitado empujando páginas para swap), de modo que pueda ser utilizado de manera más activa a los efectos (tales como archivo de búfer, o más en el programa de espacio.) Es una pérdida terrible para mantener las páginas no utilizadas, para que el concepto de ahorro de energía (hoteles) en el disco espacio. Dado el bajo nivel de INTERCAMBIO de e/S puede ser más rápido, con menos sobrecarga de la CPU de e/S de archivo, es probable deseable para empujar esas páginas no fuera de modo que puedan ser liberado para su uso por el aumento de la sobrecarga de los mecanismos. (nota 1)

(El énfasis es mío, compruebe que la parte en negrita específicamente lo que usted está preguntando acerca de, que es, "¿por Qué es el swap se utiliza cuando tengo memoria inactiva?)

1voto

slolife Puntos 6528

Por lo que yo sé (y se han dado cuenta) usted no tiene que preocuparse acerca de esta "inactivo" de la memoria. El sistema va a reasignar en la demanda. Esto ocurre cuando el sistema tiene un enorme transferencia de archivos a procesar. Este tipo de operación, el uso de la memoria tanto como sea posible para acelerar el proceso. Cuando termine la transferencia, el estado de la memoria se queda como "inactivo", pero como bien podría considerarse como libre...

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