vm_compressor_mode (vm.compressor_mode) valori per la memoria compressa abilitata in OS X

16

Sfondo

In Super utente, con una risposta accettata :

Anche in Super User:

- e dalla prima risposta capiamo che il valore di argomento di avvio vm_compressor non corrisponde al valore di variabile sysctl vm.compressor_mode .

In Apple open source per OS X 10.9, Mavericks; in xnu-2422.1.72:

In 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.
 */

Su un MacBookPro5,2 con memoria da 8 GB trovo:

sh-3.2$ sysctl -a vm.compressor_mode
vm.compressor_mode: 4

Vicino al piede di 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))

Domanda

È possibile avere una modalità attivata diversa da 4 per memoria compressa ?

Se è così, possiamo trovare una semplice spiegazione inglese delle modalità?

    
posta Graham Perrin 27.01.2014 - 08:10
fonte

1 risposta

4

Non sono completamente sicuro delle opzioni di FREEZER, a parte l'opzione FREEZER_COMPRESSOR utilizza lo swap (utilizza lo spazio libero su un disco) quando la RAM è bassa o esaurita, mentre l'altra no.

Quello che penso è che le opzioni di FREEZER siano per la gestione della memoria per i processi congelati. Forse questo è qualcosa di sperimentale, da utilizzare in combinazione con App Nap? Penso che questo fosse qualcosa che stavano testando con iOS qualche anno fa.

Quello che so è che l'opzione 1 non usa la compressione, ed è la vecchia gestione della memoria OS X che conosciamo tutti. Se stai riscontrando problemi sospetti relativi alla compressione della memoria, puoi provare questa impostazione.

L'opzione 2 utilizza la memoria compressa senza scambio (nessuna scrittura su disco quando la RAM è bassa o esaurita).

L'opzione 4 utilizza sia la compressione che lo swap.

L'opzione 8 usa qualsiasi cosa sia il FREEZER, supportato dall'implementazione dell'opzione 1.

    
risposta data 12.07.2014 - 02:56
fonte

Leggi altre domande sui tag