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 tener que cambiar constantemente.
Este es el uso de memoria después de compilar mi proyecto una vez. El uso de memoria de Xcode puede aumentar unos cientos de MB más después de unas pocas horas de uso.
Esto no responde directamente a su pregunta, ya que no conozco una forma de desactivar el mecanismo de caché de archivos en OSX. Habiendo dicho eso, no puedo pensar en una buena razón POR QUÉ querrías hacerlo en primer lugar. ¿Qué te hace estar tan seguro de que se debe al caché de archivos?
La memoria caché de archivos es algo dinámico en el sentido de que aumenta de tamaño a medida que realiza más operaciones de 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 el caché de archivos son copias de 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ámico y crece para hacer uso de la RAM no utilizada en su sistema y se reducirá tan pronto como ALGO necesite RAM. En otras palabras, no está bloqueando su memoria y no debería ser la causa de ninguna ralentización en su Mac.
Dicho todo esto, existe un cierto equilibrio entre cómo OSX administra su RAM. He visto que hay pequeños retrasos a medida que las cosas entran o salen del estado "comprimido" y, en general, la idea es que una vez que algo se comprime, permanecerá allí hasta que haya una necesidad real de lo contrario. La mayor causa de un retraso sería si estuviera usando el intercambio, 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 hay algunos gastos generales y demoras como resultado de mezclar todo esto cuando se está utilizando toda su RAM. Sin embargo, la pregunta podría ser más sobre qué aplicaciones se congelan cuando se encuentra en esta situación. Tal vez incluso su disco esté cerca de su capacidad y usted
En general, es posible que tenga algún beneficio a corto plazo al purgar o deshabilitar el caché de archivos, pero me arriesgaría a suponer que en realidad degradaría su rendimiento, ya que no obtendría el beneficio de un caché del sistema de archivos.
Si sudo purge
no ayudó, intente deshabilitar el buscapersonas 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 utilícelo solo cuando tenga una gran cantidad de RAM, pero su Mac todavía usa archivos de intercambio. Si su sistema tiene protección SIP, primero deberá desactivarla (no recomendado).
También puede eliminar manualmente los archivos de intercambio de /private/var/vm/
, por ejemplo,
sudo rm -f /private/var/vm/swapfile*
luego reinicie la computadora.
Fuente: Memoria virtual de Mac: qué es, la ubicación de intercambio y cómo deshabilitar el intercambio
Para deshabilitar completamente el intercambio de memoria, configure vm_compressor
en 1
, por ejemplo
sudo nvram boot-args="vm_compressor=2"
o configúrelo como 4
predeterminado, vea los otros valores (desde 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
reinicie y restablezca su NVRAM .
Ver: vm_compressor=VM_PAGER_DEFAULT en Yosemite causó congelación cuando la memoria física estaba llena
mmmmmm
keithyip
mmmmmm
klanomath
keithyip