vm_compressor_mode (vm.compressor_mode) valores para la memoria comprimida habilitada en OS X

16

Fondo

En superusuario, con una respuesta aceptada :

También en superusuario:

- y desde la primera respuesta entendemos que el valor de argumento de inicio vm_compressor no corresponde con el valor de sysctl variable 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 una 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 distinto de 4 para memoria comprimida ?

Si es así, ¿podemos encontrar una explicación en inglés sencillo de los modos?

    
pregunta Graham Perrin 27.01.2014 - 08:10

1 respuesta

4

No estoy completamente seguro de las opciones de FREEZER, aparte de una opción FREEZER_COMPRESSOR que usa swap (utiliza espacio libre en un disco) cuando la memoria RAM es baja o está agotada, mientras que la otra no.

Lo que creo es que las opciones de CONGELADOR son para administrar la memoria para procesos congelados. Tal vez esto sea algo experimental, para ser usado en combinación con App Nap? Creo que esto era 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 antigua 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 intentar esta configuración.

La opción 2 usa memoria comprimida sin intercambio (no se escribe en el disco cuando la memoria RAM es baja o está agotada).

La opción 4 usa tanto la compresión como el intercambio.

La opción 8 utiliza lo que sea el CONGELADOR, respaldada por la implementación de la opción 1.

    
respondido por el Antonio Malcolm 12.07.2014 - 02:56

Lea otras preguntas en las etiquetas