Antecedentes
En Superusuario, con una respuesta aceptada :
También en Super Usuario:
- y de la primera respuesta allí entendemos que el valor del argumento de arranquevm_compressor
no se corresponde con el valor de la variable sysctl vm.compressor_mode
.
En el código abierto de Apple para OS X 10.9, Mavericks; en xnu-2422.1.72:
En vm_compressor.c:
/*
* vm_compressor_mode has a heirarchy of control to set its value.
* boot-args are checked first, then device-tree, and finally
* the default value that is defined below. See vm_fault_init() for
* the boot-arg & device-tree code.
*/
En un MacBookPro5,2 con 8 GB de memoria encuentro:
sh-3.2$ sysctl -a vm.compressor_mode
vm.compressor_mode: 4
Cerca del pie de vm_pageout.h:
extern int vm_compressor_mode;
extern int vm_compressor_thread_count;
#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.*/
#define VM_PAGER_MAX_MODES 6 /* Total number of vm compressor modes supported */
#define DEFAULT_PAGER_IS_ACTIVE ((vm_compressor_mode & VM_PAGER_DEFAULT) == VM_PAGER_DEFAULT)
#define COMPRESSED_PAGER_IS_ACTIVE (vm_compressor_mode & (VM_PAGER_COMPRESSOR_NO_SWAP | VM_PAGER_COMPRESSOR_WITH_SWAP))
#define DEFAULT_FREEZER_IS_ACTIVE ((vm_compressor_mode & VM_PAGER_FREEZER_DEFAULT) == VM_PAGER_FREEZER_DEFAULT)
#define DEFAULT_FREEZER_COMPRESSED_PAGER_IS_ACTIVE (vm_compressor_mode & (VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP | VM_PAGER_FREEZER_COMPRESSOR_WITH_SWAP))
Pregunta
¿Es posible tener un modo habilitado que no sea 4 para la memoria comprimida ?
Si es así, ¿podemos encontrar una explicación sencilla en inglés de los modos?
macos
mavericks
memory
virtual-memory
memory-pressure
Graham Perrin
fuente
fuente
Respuestas:
No estoy completamente seguro de las opciones de FREEZER, aparte de una opción FREEZER_COMPRESSOR utiliza swap (utiliza espacio libre en un disco) cuando la memoria RAM es baja o se gasta, mientras que la otra no.
Lo que creo es que las opciones de FREEZER son para administrar memoria para procesos congelados. ¿Quizás esto es algo experimental, para ser usado en combinación con App Nap? Creo que esto fue algo que estaban probando con iOS hace unos años.
Lo que sé es que la opción 1 no usa compresión, y es la administración de memoria OS X pasada de moda con la que todos estamos más familiarizados. Si tiene problemas que sospecha que están relacionados con la compresión de la memoria, puede probar esta configuración.
La opción 2 usa memoria comprimida sin intercambio (sin escritura en el disco cuando la RAM es baja o está agotada).
La opción 4 usa tanto compresión como intercambio.
La opción 8 usa cualquiera que sea el CONGELADOR, respaldado por la implementación de la opción 1.
fuente
No puedo agregar un comentario, así que escribiré como respuesta: Parece que el congelador es la tecnología patentada de Apple y, si lo usa
VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP
, ¿no debería usar el compresor también? (ver, el compresor está presente, pero no está activado)Respondiendo a la pregunta, puedes tener:
fuente