¿Cómo es vm.memory_pressure
¿el valor de la tarjeta está limitado/calculado en OS X 10.10.2 - Yosemite?
He investigado varios respuestas a esta pregunta y estoy probando algunas cosas en la línea de comandos para obtener valores exactos en lugar de mirar los gráficos en el Monitor de Actividad.
Con el sistema bajo carga ligera:
~ 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
El kern.memorystatus_vm_pressure_level parece correcto, y parece ser lo que utiliza para colorear el gráfico (verde para 1-NORMAL, amarillo para 2-WARN, rojo para 4-CRITICAL). Sin embargo, vm.memory_pressure es 0 y el gráfico tiene una cierta cantidad de verde, y es irregular, lo que significa que el valor está cambiando claramente con el tiempo, no sólo en 0.
Bajo carga pesada se ve así:
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
O esto...
~ 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
O esto...
~ 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
Aquí es donde estoy confundido. Ninguno de estos valores por sí solo podría ser el valor Y del gráfico por un par de razones.
En primer lugar, vm.memory_pressure se queda en 0 casi todo el tiempo bajo carga normal, y el gráfico no se queda en 0.
En segundo lugar, no son coherentes entre sí. Mirando el valor de memory_pressure, es más bajo cuando tenía realmente páginas deseadas (3220 deseadas y presión de sólo 1) que cuando tenía 5431 libres y ninguna deseada (la presión era de 277). Y de alguna manera esa es una presión aún más baja que cuando tenía 32572 libres (y tenía 1693 de presión).
Entonces, cuando traza ese gráfico, ¿cuál es el cálculo del valor Y, y cómo puedo obtener los datos que necesito para calcularlo desde la línea de comandos? Estoy tratando de hacer una herramienta de línea de comandos que escupe un porcentaje de lo alto que la línea actual sería en ese gráfico, así que necesito saber cómo calcular el valor en un momento dado, así como lo que el rango de valores posibles son.