Bagaimana vm.memory_pressure
Nilai terikat / dihitung pada OS X 10.10.2 - Yosemite?
Saya sudah meneliti beberapa jawaban untuk pertanyaan ini dan saya mencoba beberapa hal di baris perintah untuk mendapatkan nilai yang tepat daripada melihat grafik di Activity Monitor.
Dengan sistem di bawah beban ringan:
~ ❯❯❯ 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
The kern.memorystatus_vm_pressure_level terlihat benar, dan tampaknya apa yang digunakan untuk mewarnai grafik (hijau untuk 1-NORMAL, kuning untuk 2-WARN, merah untuk 4-KRITIS). Namun, vm.memory_pressure adalah 0 dan grafik memiliki sejumlah hijau untuk itu, dan itu bergerigi, artinya nilainya berubah dengan jelas dari waktu ke waktu, tidak hanya duduk di 0.
Di bawah beban berat terlihat seperti ini:
❯❯❯ 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
Atau ini...
~ ❯❯❯ 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
Atau ini...
~ ❯❯❯ 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
Di sinilah aku bingung. Tidak satu pun dari nilai-nilai ini saja yang bisa menjadi nilai Y dari grafik karena beberapa alasan.
Pertama, vm.memory_pressure hanya duduk di 0 hampir sepanjang waktu di bawah beban normal, dan grafik tidak duduk di 0.
Kedua, mereka tidak konsisten satu sama lain. Melihat nilai memory_pressure, itu lebih rendah ketika itu sebenarnya ingin halaman (3220 ingin dan tekanan hanya 1) daripada ketika itu memiliki 5431 gratis dan tidak ada yang diinginkan (tekanan 277). Dan entah bagaimana tekanan itu bahkan lebih rendah daripada ketika ia memiliki 32572 gratis (dan memiliki tekanan 1693).
Jadi, ketika plot grafik itu, apa perhitungan untuk nilai Y, dan bagaimana saya bisa mendapatkan data yang saya butuhkan untuk menghitungnya dari baris perintah? Saya ingin membuat alat baris perintah yang akan memuntahkan persentase seberapa tinggi garis saat ini pada grafik itu, jadi saya perlu tahu cara menghitung nilai pada waktu tertentu, serta berapa kisaran nilai yang mungkin adalah.