Contexte
Dans Super utilisateur, avec une réponse acceptée :
Également dans Super User:
- et d'après la première réponse, nous comprenons que la valeur de l' argument de démarragevm_compressor
ne correspond pas à la valeur de la variable sysctl vm.compressor_mode
.
Dans Apple open source pour OS X 10.9, Mavericks; dans xnu-2422.1.72:
Dans 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.
*/
Sur un MacBookPro5,2 avec 8 Go de mémoire, je trouve:
sh-3.2$ sysctl -a vm.compressor_mode
vm.compressor_mode: 4
Près du pied 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))
Question
Est-il possible d'avoir un mode activé autre que 4 pour la mémoire compressée ?
Si oui, pouvons-nous trouver une explication simple en anglais des modes?
macos
mavericks
memory
virtual-memory
memory-pressure
Graham Perrin
la source
la source
Réponses:
Je ne suis pas complètement certain des options FREEZER, à l'exception d'une option FREEZER_COMPRESSOR qui utilise l'échange (utilise l'espace libre sur un disque) lorsque la RAM est faible ou dépensée, tandis que l'autre ne le fait pas.
Ce que je pense, c'est que les options FREEZER sont pour la gestion de la mémoire pour les processus gelés. Peut-être que c'est quelque chose d'expérimental, à utiliser en combinaison avec App Nap? Je pense que c'était quelque chose qu'ils testaient avec iOS il y a quelques années.
Ce que je sais, c'est que l'option 1 n'utilise aucune compression, et c'est l'ancienne gestion de la mémoire OS X que nous connaissons tous mieux. Si vous rencontrez des problèmes liés à la compression de la mémoire, vous pouvez essayer ce paramètre.
L'option 2 utilise de la mémoire compressée sans échange (pas d'écriture sur le disque lorsque la mémoire RAM est faible ou épuisée).
L'option 4 utilise à la fois la compression et le swap.
L'option 8 utilise quel que soit le CONGÉLATEUR, soutenue par l'implémentation de l'option 1.
la source
Je ne peux pas ajouter de commentaire, donc je vais écrire comme réponse: On dirait que le congélateur est la technologie brevetée d'Apple et si vous l'utilisez
VM_PAGER_FREEZER_COMPRESSOR_NO_SWAP
, vous ne devriez pas utiliser le compresseur aussi? (voir, le compresseur est présent, mais n'est pas activé)En répondant à la question, vous pouvez avoir:
la source