Comment vm.memory_pressure
la valeur est-elle liée / calculée sur OS X 10.10.2 - Yosemite?
J'ai cherché plusieurs réponses à cette question et j'essaie quelques choses en ligne de commande pour obtenir des valeurs exactes plutôt que de regarder les graphiques dans Activity Monitor.
Avec le système sous charge légère:
~ ❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 0
vm.page_free_count: 2683717
vm.memory_pressure: 0
kern.memorystatus_vm_pressure_level: 1
Kern.memorystatus_vm_pressure_level semble correct et semble être ce qu'il utilise pour colorer le graphique (vert pour 1-NORMAL, jaune pour 2-WARN, rouge pour 4-CRITICAL). Cependant, vm.memory_pressure vaut 0 et le graphique contient une certaine quantité de vert et est irrégulier, ce qui signifie que la valeur change clairement dans le temps, et non pas uniquement à 0.
Sous forte charge, cela ressemble à ceci:
❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 0
vm.page_free_count: 32572
vm.memory_pressure: 1693
kern.memorystatus_vm_pressure_level: 4
Ou ca...
~ ❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 0
vm.page_free_count: 5431
vm.memory_pressure: 277
kern.memorystatus_vm_pressure_level: 4
Ou ca...
~ ❯❯❯ sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level
vm.vm_page_free_target: 4000
vm.page_free_wanted: 3220
vm.page_free_count: 805
vm.memory_pressure: 1
kern.memorystatus_vm_pressure_level: 4
Voici où je suis confus. Aucune de ces valeurs ne pourrait à elle seule être la valeur Y du graphique pour plusieurs raisons.
Premièrement, vm.memory_pressure reste à 0 presque tout le temps sous charge normale, et le graphique ne reste pas à 0.
Deuxièmement, ils ne sont pas compatibles les uns avec les autres. En regardant la valeur memory_pressure, elle est plus basse quand il y avait réellement des pages de recherche (3220 demandées et une pression de 1 seulement) que lorsqu'il avait 5431 pages libres et aucune demande (la pression était de 277). Et d’une manière ou d’une autre, c’est une pression encore plus basse que quand il avait 32572 libres (et 1693 pressions).
Ainsi, quand il trace ce graphique, quel est le calcul de la valeur Y et comment puis-je obtenir les données dont j'ai besoin pour le calculer à partir de la ligne de commande? Je cherche à créer un outil de ligne de commande qui calculera un pourcentage de la hauteur de la ligne actuelle sur ce graphique. J'ai donc besoin de savoir comment calculer la valeur à tout moment, ainsi que la plage de valeurs. les valeurs possibles sont.