3 votos

Cómo desactivar la caché de disco en Yosemite

Mi MacBook se congela constantemente por usar toda la RAM (8GB). El caché del disco parece ser la causa. El comando sudo purge sólo ayuda un poco. En algunas versiones antiguas de OS X, mi MacBook funcionaba bien porque tenía (justo) la RAM suficiente para ejecutar Xcode (con un proyecto grande) sin tener que intercambiar constantemente.

Este es el uso de memoria después de compilar mi proyecto una vez. El uso de memoria de Xcode puede crecer algunos cientos de MB más después de unas horas de uso.

enter image description here

3voto

Jenea Puntos 2702

Esto no responde directamente a tu pregunta ya que no conozco una forma de desactivar el mecanismo de caché de archivos en OSX. Dicho esto, no se me ocurre una buena razón por la que querrías hacerlo en primer lugar. ¿Qué te hace estar tan seguro de que es por el caché de archivos?

La caché de archivos es una cosa dinámica en el sentido de que se hace más grande a medida que se hace más E/S con el disco, pero se purga y se reduce tan pronto como una aplicación necesita RAM para hacer algo. Lo que vive en la caché de archivos son copias de los archivos usados recientemente con la idea de que si los necesitas de nuevo poco después, la E/S será mucho más rápida porque ya está en la RAM. Mientras que esto es similar a la función de caché de RAM del antiguo MacOS, la gran diferencia aquí es que es completamente dinámica y crece para hacer uso de la RAM no utilizada en su sistema y se reducirá tan pronto como CUALQUIER cosa necesite RAM. En otras palabras, no bloquea tu memoria y no debería ser la causa de ninguna ralentización en tu Mac.

Dicho todo esto, hay algo de equilibrio entre cómo OSX gestiona su RAM. He visto que hay pequeños retrasos cuando las cosas entran/salen del estado "comprimido" y en general la idea es que una vez que algo está comprimido, se mantendrá allí hasta que haya una necesidad real de lo contrario. La mayor causa de un retraso sería si estuvieras usando swap ya que es la forma más lenta de memoria, pero tu captura de pantalla indica incluso 0 bytes dedicados a swap. Dejando a un lado la compresión y el intercambio, no me sorprendería que hubiera algo de sobrecarga y retraso como resultado de barajar todo esto cuando toda la RAM está siendo utilizada. Sin embargo, la pregunta podría ser más en torno a lo que las aplicaciones se congelan cuando estás en esta situación. ¿Quizás incluso tu disco está cerca de su capacidad y estás experimentando el hecho de que HFS+ es mucho más lento cuando el disco está casi lleno?

En general, podría tener algún beneficio a corto plazo al purgar o desactivar la caché de archivos, pero me atrevería a decir que en realidad degradar su rendimiento ya que no obtendría el beneficio de un caché del sistema de archivos.

0voto

matthew k Puntos 11

Si sudo purge no ayudó, pruebe a desactivar el localizador dinámico, por ejemplo

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

Advertencia: Esto deshabilita por completo la capacidad de paginación de Mac OS X, así que úselo sólo cuando tenga una gran cantidad de RAM, pero su Mac siga usando archivos de intercambio. Si su sistema tiene protección SIP, tendrá que desactivar primero (no se recomienda).

También puede eliminar los archivos de intercambio manualmente desde /private/var/vm/ Por ejemplo

sudo rm -f /private/var/vm/swapfile*

y luego reiniciar el ordenador.

Fuente: Memoria virtual del Mac: qué es, la ubicación de la swap y cómo desactivar la swap


Para desactivar por completo el intercambio de memoria, establezca vm_compressor a 1 Por ejemplo

sudo nvram boot-args="vm_compressor=2"

o ponerlo en 4 por defecto, ver los otros valores (de vm_pageout.h ):

#define VM_PAGER_DEFAULT                0x1 /* Use default pager. */
#define VM_PAGER_COMPRESSOR_NO_SWAP         0x2 /* In-core compressor only. */
#define VM_PAGER_COMPRESSOR_WITH_SWAP           0x4 /* In-core compressor + swap backend. */
#define VM_PAGER_FREEZER_DEFAULT            0x8 /* Freezer backed by default pager.*/
#define VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP     0x10    /* Freezer backed by in-core compressor only i.e. frozen data remain in-core compressed.*/
#define VM_PAGER_FREEZER_COMPRESSOR_WITH_SWAP       0x20    /* Freezer backed by in-core compressor with swap support too.*/

Para comprobar su valor actual, ejecute:

sysctl vm.compressor_mode

Para volver a la normalidad, borre los argumentos de arranque por:

sudo nvram -d boot-args

reinicie y restablezca su NVRAM .

Ver: vm_compressor=VM_PAGER_DEFAULT en Yosemite provocaba la congelación cuando la memoria física estaba llena

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