vm.memory_pressure
OS X 10.10.2 - Yosemite पर किस प्रकार का मान बाउंड / कैलकुलेट किया गया है?
मैंने इस प्रश्न के कई उत्तरों पर शोध किया है और गतिविधि मॉनिटर में ग्राफ़ को देखने के बजाय सटीक मान प्राप्त करने के लिए कमांड लाइन पर कुछ चीजों की कोशिश कर रहा हूं।
प्रकाश लोड के तहत प्रणाली के साथ:
~ ❯❯❯ 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
यहाँ मैं भ्रमित हूँ। इनमें से कोई भी मूल्य संभवतः कुछ कारणों से ग्राफ का वाई मान नहीं हो सकता है।
सबसे पहले, vm.memory_pressure सामान्य लोड के तहत लगभग हर समय 0 पर बैठता है, और ग्राफ 0 पर नहीं बैठता है।
दूसरा, वे एक दूसरे के अनुरूप नहीं हैं। जब यह वास्तव में पृष्ठों (3220 चाहता था और केवल 1 का दबाव था) की तुलना में जब यह ५४३१ मुक्त था और कोई नहीं चाहता था (दबाव २) it) था, तो यह मेमोरी_प्रेस की कीमत को देखते हुए कम है। और किसी तरह यह भी कम दबाव की तुलना में जब यह 32572 मुक्त था (और 1693 दबाव था)।
इसलिए, जब यह उस प्लॉट को प्लॉट करता है, तो वाई मान के लिए क्या गणना है, और मुझे कमांड लाइन से गणना करने के लिए मुझे किस डेटा की आवश्यकता है? मैं एक कमांड लाइन टूल बनाने की कोशिश कर रहा हूं, जो उस ग्राफ पर वर्तमान लाइन कितनी ऊंची हो, इसका एक प्रतिशत भाग लेगा, इसलिए मुझे यह जानने की जरूरत है कि किसी भी समय मूल्य की गणना कैसे की जाए, साथ ही साथ इसकी सीमा क्या है संभव मान हैं।