Cómo deshabilitar el caché de disco en Yosemite

1

Mi MacBook se congela constantemente debido al uso de toda la RAM (8 GB). El caché de disco parece ser la causa. El comando sudo purge solo ayuda un poco. En algunas versiones anteriores de OS X, mi MacBook funcionaba bien porque tenía (solo) suficiente RAM para ejecutar Xcode (con un gran proyecto) sin cambiar constantemente.

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

    
pregunta keithyip 24.03.2015 - 16:14

2 respuestas

2

Esto no responde directamente a tu pregunta, ya que no conozco una manera de deshabilitar el mecanismo de caché de archivos en OSX. Dicho esto, no puedo pensar en una buena razón ¿POR QUÉ querrías hacerlo en primer lugar? ¿Qué te hace estar tan seguro de que es debido a la caché de archivos?

El caché de archivos es algo dinámico, ya que se hace más grande a medida que hace más E / S con su disco, pero se purga y se reduce tan pronto como una aplicación necesita RAM para hacer algo. Lo que vive en la memoria caché de archivos son las copias de los archivos usados recientemente con la idea de que si los necesita nuevamente poco después, la E / S será mucho más rápida, ya que ya está en la RAM. Si bien esto es similar a la función de caché de RAM del MacOS anterior, la gran diferencia aquí es que es completamente dinámica y crece para utilizar la RAM no utilizada en su sistema y se reducirá tan pronto como CUALQUIER COSA necesite RAM. En otras palabras, no está bloqueando su memoria y no debería ser la causa de ninguna desaceleración en su Mac.

Dicho todo esto, hay un cierto equilibrio entre la forma en que OSX administra su RAM. He visto que hay pequeños retrasos a medida que las cosas entran y salen del estado "comprimido" y, en general, la idea es que una vez que se comprime algo, permanecerá allí hasta que exista una necesidad real de lo contrario. La causa más grande de un retraso sería si estuviera usando swap, ya que esa es la forma de memoria más lenta, pero su captura de pantalla incluso indica 0 bytes dedicados al intercambio. Dejando a un lado la compresión y el intercambio, no me sorprendería si hubiera un poco de sobrecarga y demora como resultado de barajar todo esto cuando se está utilizando toda la RAM. Sin embargo, la pregunta podría ser más acerca de qué aplicaciones se están congelando cuando estás en esta situación. Tal vez incluso su disco está cerca de su capacidad y está experimentando el hecho de que HFS + es mucho más lento cuando el disco está casi lleno.

En general, es posible que tenga algún beneficio a corto plazo al purgar o deshabilitar el caché de archivos, pero me atrevería a suponer que realmente degradaría su rendimiento, ya que no obtendría el beneficio de un caché del sistema de archivos.

    
respondido por el bjb 24.03.2015 - 18:34
0

Si sudo purge no ayudó, intente desactivar el buscapersonas dinámico, por ejemplo

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

Advertencia: Esto desactiva completamente la capacidad de paginación de Mac OS X, así que úsalo solo cuando tengas una gran cantidad de RAM, pero tu Mac todavía está usando archivos de intercambio. Si su sistema tiene protección SIP, deberá deshabilitar primero (no recomendado).

También puedes eliminar los archivos de intercambio manualmente desde /private/var/vm/ , por ejemplo,

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

luego reinicia la computadora.

Fuente: Memoria virtual de Mac: qué es, la ubicación de intercambio y cómo deshabilitarla Swap

Para deshabilitar completamente el intercambio de memoria, establezca vm_compressor en 1 , por ejemplo

sudo nvram boot-args="vm_compressor=2"

o configúrelo en 4 a los valores predeterminados, consulte 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 verificar su valor actual, ejecute:

sysctl vm.compressor_mode

Para volver a la normalidad, elimine los argumentos de arranque mediante:

sudo nvram -d boot-args

reinicia y restablece tu NVRAM .

Consulte: vm_compressor = VM_PAGER_DEFAULT en Yosemite se bloqueó cuando la memoria física estaba llena

    
respondido por el kenorb 05.08.2016 - 16:55

Lea otras preguntas en las etiquetas