vm.memory_pressure
OS X 10.10.2-Yosemite에서 값 은 어떻게 제한 / 계산됩니까?
이 질문에 대한 몇 가지 답변을 연구 했으며 Activity Monitor에서 그래프를 보지 않고 정확한 값을 얻기 위해 명령 줄에서 몇 가지를 시도하고 있습니다.
시스템이 경부 하 상태 인 경우 :
~ ❯❯❯ 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은 올바르게 보이고 그래프 색상을 지정하는 데 사용되는 것으로 보입니다 (1-NORMAL의 경우 녹색, 2-WARN의 경우 노랑, 4-CRITICAL의 경우 빨강). 그러나 vm.memory_pressure는 0이고 그래프에는 초록색이 있으며 들쭉날쭉하여 값이 0에 앉아있는 것이 아니라 시간이 지남에 따라 명확하게 변경됩니다.
과부하 상태에서는 다음과 같습니다.
❯❯❯ 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
아니면 이거...
~ ❯❯❯ 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
아니면 이거...
~ ❯❯❯ 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
여기 내가 혼란스러워하는 곳이 있습니다. 이 두 가지 값만으로는 두 가지 이유로 그래프의 Y 값이 될 수 없습니다.
먼저, vm.memory_pressure는 정상 부하 상태에서 거의 항상 0에 있고 그래프는 0에 있지 않습니다.
둘째, 서로 일치하지 않습니다. memory_pressure 값을 보면 실제로 페이지를 원했을 때 (3220 원하고 압력은 1)에 비해 5431이 비어 있고 원치 않았을 때 (압력 277)보다 낮습니다. 그리고 어떻게 든 그것은 32572가 자유롭고 (1693의 압력을 가했을 때)보다 훨씬 낮은 압력입니다.
따라서 그래프를 그릴 때 Y 값에 대한 계산은 무엇이며 명령 줄에서 계산 해야하는 데이터를 어떻게 얻을 수 있습니까? 현재 줄이 그 그래프에서 얼마나 높은지 백분율을 나타내는 명령 줄 도구를 만들고 싶습니다. 따라서 주어진 시간에 값을 계산하는 방법과 범위를 알아야합니다. 가능한 값은 다음과 같습니다.