Deshabilitar el intercambio de memory inactiva

Fondo:

OSX conserva cierta información en la RAM que ya no se usa, pero que se utilizó recientemente. Esto se denomina memory inactiva y tiene como objective mejorar la experiencia del usuario al acelerar algunas acciones:

Por ejemplo, si ha estado usando Mail y luego lo ha dejado, la RAM que usaba Mail está marcada como memory Inactiva. La memory inactiva está disponible para ser utilizada por otra aplicación, al igual que la memory gratuita. Sin embargo, si abre Mail antes de que su memory Inactiva sea utilizada por una aplicación diferente, Mail se abrirá más rápido porque su memory Inactiva se convierte en memory Activa, en lugar de cargarla desde la unidad más lenta.

  • Cómo instalar correctamente Java en OS X
  • ¿Cómo debo instalar el software desde la fuente para poder hacer que mi configuration sea manejable y reproducible?
  • Gatekeeper no permitirá que LibreOffice abra files .csv
  • Mostrar solo windows activas en el espacio actual en Mac OSX al presionar CMD-Tab
  • ¿Mapeando un MacPro5,1 desde 2010?
  • ¿Cuándo debo registrarme (es decir, pagar para ser) un desarrollador de Apple OS X?
  • Suena cuestionable (¿cuánto puede acelerar el correo en una máquina de cuatro núcleos?), Pero al less eso no podría perjudicar ya que tal memory puede ser tratada como memory libre. En realidad, puede :

    En OS X, cuando el número de páginas en la list libre cae por debajo de un umbral calculado, el kernel recupera las páginas físicas para la list libre al intercambiar páginas inactivas de la memory.

    Esto me hace cuestionar si el event handling memory de OSX es de hecho superior; después de todo, la misma página menciona que

    La pagination de cualquier tipo … afecta el performance de forma negativa porque obliga al sistema a pasar mucho time leyendo y escribiendo en el disco. Leer una página desde la tienda de respaldo lleva una cantidad significativa de time y es mucho más lento que leer directamente desde la memory RAM. Si el sistema tiene que escribir una página en el disco para poder leer otra página del disco, el impacto en el performance es aún peor.

    Problema:

    Esto (localizar la memory inactiva y la posterior degradación grave del performance) es probable que se produzca incluso durante tareas triviales como la exploración de múltiples tabs, incluso si el número de tabs simultáneamente abiertas se mantiene dentro de lo razonable (tanto Safari como Chrome parecen ser culpables de agregar a la memory inactiva cada vez que se cierra una pestaña).

    La máquina apenas se puede utilizar cuando esto sucede, incluso abrir la Terminal y purgar la memory puede tomar unos minutos.

    Pregunta:

    ¿Se puede desactivar el intercambio de memory inactiva? O, si la memory inactiva no es esencial, ¿puede desactivarse por completo?

    Alternativamente, ¿hay un daemon o una aplicación de Apple disponible que controle el uso de la memory inactiva (un oxímoron OSX) y cuando supere una cantidad arbitraria (medio giga?) Se realice una purge .

  • Las opciones de resolución de pantalla desaparecieron después de la actualización a Sierra
  • ¿Cuál es la Mac más reciente que ejecutará Leopard?
  • Cambiar el color de la barra de menu del mac
  • Truncado de barra de título de León de montaña
  • ¿Cuál es la forma correcta de pronunciar "Mac OS X"?
  • ¿Es posible o probable que se transfiera malware o virus conectando un disco duro USB a mi Mac?
  • 2 Solutions collect form web for “Deshabilitar el intercambio de memory inactiva”

    He estado investigando esta misma pregunta por un time, y he llegado a la conclusión de que si bien hay varias llamadas "soluciones" que se ofrecen en varios lugares, ninguna de ellas realmente soluciona el problema o hace que los síntomas desaparezcan. Lo mejor que he encontrado son las técnicas que cambian cuando se intercambia la memory inactiva, como el uso del command de purge que se refiere. Creo que MacLemon tiene razón en que el intercambio se puede desactivar solo en forma completa y no selectiva, por lo que inhabilitar el intercambio de memory inactiva equivaldría a deshabilitar la memory virtual, lo que podría ser una solución viable en una máquina con cantidades realmente grandes. de RAM, pero no es práctico en máquinas con una capacidad de RAM máxima baja, como MacBooks o Minis.

    La razón de que ninguna de las soluciones de purga ad-hoc mejore significativamente la situación es que en realidad solo hay dos maneras de forzar a OS X a borrar la memory inactiva: el command de purge , o forzar la asignación de toda la memory libre (y dado que estoy no está seguro de qué método utiliza purge , estos dos pueden ser más o less lo mismo). purge , como mencionaste, toma una cantidad no trivial de time para completarse. La asignación de toda la memory libre simplemente acelera el process mediante el cual el contenido de la memory inactiva se intercambia de forma natural, por lo que aún ocupa la misma cantidad de resources del sistema. La única ventaja de cualquiera de estas soluciones es que le permiten elegir cuándo se produce el intercambio, por lo que puede hacerse antes de que normalmente esté tratando de asignar esa memory a otra cosa. Si eso es realmente útil para usted depende de varios factores, por lo que la forma más sencilla de averiguarlo es simplemente probarlo.

    He estado probando algunas de las utilidades de borrado de memory, y he descubierto que, para mí, forzar manualmente el intercambio inactivo requiere una supervisión más activa de los niveles de memory de lo que es práctico mientras estoy trabajando, y el uso de una utilidad que fuerce automáticamente el intercambio cuando la memory libre caiga por debajo de un cierto umbral no es mejor que dejar que el SO lo haga por sí mismo, ya que aún no tengo control sobre cuándo ocurrirá el intercambio y mis aplicaciones tendrán SPOD. Entonces, si bien hay una aplicación que hará exactamente lo que tu pregunta alternativa pide, eso en realidad no hace que la situación sea less dolorosa.

    Hasta que el equipo de desarrollo de SO de Apple decida que el sistema de administración de memory no funciona de la manera que se espera, y encuentren una manera de hacerlo funcionar correctamente, la única solución real es identificar qué aplicaciones generan la memory más inactiva y detener utilizarlos. En mi situación, esto ha significado cambiar los browseres web. He estado probando una variedad de ellos, y Chrome es hasta ahora el que parece generar la memory less inactiva, probablemente en parte porque cada pestaña y cada extensión se ejecuta como un process separado, lo que permite a la administración de memory nativa del sistema operativo tratar cada uno por separado en términos de priorizar el intercambio. Safari es lo peor que he probado; comenzando con Safari 5.1, podría abrir algunas tabs, no hacer absolutamente nada y observar cómo la memory inactiva aumenta rápidamente en el Monitor de actividad: pasaría fácilmente de <1 gb inactivo a> 3 gb inactivo en unos cinco minutos, ejecutar el ciclo de intercambio y luego haz exactamente lo mismo. (Por supuesto, la memory que no hace nada es lo que la hace inactiva en primer lugar, pero no debería crear más memory inactiva que la asignada activa en primer lugar.) Safari 6 bajo Mountain Lion es un poco mejor, pero no lo mejor para valer la pena volver atrás. Firefox, al no estar basado en WebKit, debería ser mejor que Safari o Chrome, pero tiene su propio legado de problemas de administración de memory, incluido un historial de pérdidas de memory, que no lo hace mejor en la práctica.

    Lo que realmente solucionaría el problema sería si hubiera una opción, probablemente una opción oculta en el sistema operativo, pidiéndole al sistema operativo que simplemente vacíe el contenido de la memory inactiva cuando sea necesario en lugar de intercambiar su contenido en el disco. Pero no espero que Apple alguna vez tenga disponible esa opción.

    ¿Cuánta RAM tiene tu Mac? Además, los browseres (especialmente los de Webkit) son conocidos por usar grandes cantidades de memory en estos días. La memory inactiva tiene un buen uso y se opone a la memory RAM libre que solo consume energía. En el caso de un browser, esto le permite deshacer el cierre de una pestaña y conservar su historial, etc.

    Puede desactivar completamente el intercambio de memory ejecutando sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist y reiniciar. No puede desactivar de forma selectiva el intercambio.

    Puede deshacer esto ejecutando sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist y reiniciando nuevamente.

    Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).