ค่า Y สำหรับกราฟความดันหน่วยความจำในการตรวจสอบกิจกรรมคำนวณอย่างไร


41

เป็นวิธีการvm.memory_pressureของมูลค่าทางทิศ / คำนวณบน OS X 10.10.2 - โยเซมิตี?

ฉันได้ค้นคว้าคำตอบหลายข้อสำหรับคำถามนี้และกำลังลองบางสิ่งในบรรทัดคำสั่งเพื่อรับค่าที่แน่นอนแทนที่จะดูกราฟในการตรวจสอบกิจกรรม

ด้วยระบบภายใต้ภาระแสง:

~ ❯❯❯ 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 คืออะไรและฉันจะรับข้อมูลที่ฉันต้องการคำนวณจากบรรทัดคำสั่งได้อย่างไร ฉันต้องการสร้างเครื่องมือบรรทัดคำสั่งที่จะกระจายเปอร์เซ็นต์ของจำนวนบรรทัดปัจจุบันที่จะอยู่ในกราฟนั้นดังนั้นฉันจำเป็นต้องรู้วิธีการคำนวณค่าในเวลาที่กำหนดรวมถึงช่วงของ ค่าที่เป็นไปได้คือ


7
เป็นคำถามที่ดีมาก การตรวจสอบกิจกรรมแสดงความกดดันต่อสเกลจาก 0% ถึง 100% แต่ฉันไม่พบการอ้างอิงใด ๆ เกี่ยวกับความคิดเห็นบรรทัดคำสั่งของสิ่งนี้ ฉันจะดูว่าฉันสามารถขุดพอสำหรับคำตอบในสัปดาห์นี้ เราสามารถสันนิษฐานได้ว่าคุณสนใจ 10.10.x เท่านั้น?
bmike

3
ขอขอบคุณ. และใช่ฉันอายุ 10.10.2 ดังนั้นนั่นเป็นสิ่งเดียวที่ฉันเกี่ยวข้องกับเรื่องนี้
Raugturi

5
จุดข้อมูลที่น่าสนใจ ยังไม่ชัดเจนสำหรับฉันว่าอัลกอริทึมได้รับการออกแบบหรือเขียนโค้ดอย่างไร - หรือแม้ว่าจะยังคงเหมือนเดิมจากรุ่นสู่รุ่น ดูapple.stackexchange.com/questions/107126/…สำหรับคำอธิบายที่ดีและข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้
bmike

1
มีความเป็นไปได้ที่ซ้ำกันของ"ความจำหน่วยความจำ" ของ Mavericks และโยเซมิตี
Evan Rosica

คำตอบ:


2

นี่เป็นเพียงคำตอบบางส่วนเท่านั้น คำตอบนี้ไม่สมบูรณ์จนกว่าประโยคนี้จะถูกลบออก

สิ่งที่เกี่ยวกับคำถามนี้คือหน้ากราฟความดันหน่วยความจำไม่ค่อยสมเหตุสมผลเมื่อเปรียบเทียบกับสิ่งที่รายงานใน Terminal เมื่อใช้คำสั่งที่ระบุโดย OP:

sysctl -a vm | grep page_free && sysctl vm.memory_pressure && sysctl kern.memorystatus_vm_pressure_level

อย่างไรก็ตามปัญหาที่นี่คือคำสั่งนี้ จำกัด ค่า vm ที่รายงานกลับมา ที่จริงแล้วมีค่าทั้งหมด 105 ค่า แต่คำสั่งนี้รายงานเฉพาะค่าห้าค่าต่อไปนี้:

vm.vm_page_free_target:
vm.page_free_wanted:
vm.page_free_count:
vm.memory_pressure:
kern.memorystatus_vm_pressure_level:

หมายเหตุ:โดยปกติค่าตัวเลขจะปรากฏขึ้นหลังเครื่องหมายจุดคู่ (:) อย่างไรก็ตามฉันไม่ได้รวมค่าเหล่านี้

เห็นได้ชัดว่าส่วนใหญ่ที่ครอบงำของค่า VM 105 ไม่ได้เป็นส่วนหนึ่งของการคำนวณที่เกิดขึ้นจริงที่เป็นตัวกำหนดความดันหน่วยความจำ แต่ปัญหาที่เกิดขึ้นที่นี่เป็นที่ค่าห้าดังกล่าวไม่ได้เป็นคนเดียวที่ใช้ในการคำนวณความดันหน่วยความจำ

ตัวอย่างเช่นในขณะที่เอาต์พุตด้านบนให้บางส่วนของค่าฟรีต่าง ๆก็ไม่ได้ให้ค่าที่ไม่ได้ใช้งานใด ๆ ฯลฯ

ค่าเหล่านี้มีความสำคัญเนื่องจากอัลกอริธึมความดันหน่วยความจำคำนวณอัตราส่วนระหว่างค่าเหล่านั้นและความสัมพันธ์ระหว่างค่าเหล่านั้นไม่ชัดเจนจากเอาต์พุตที่สร้างโดยคำสั่งในคำถามของ OP

ฉันคิดว่าฉันอาจมีข้อมูลทางเทคนิคบางอย่างที่สามารถอธิบายเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ ฉันจะอัปเดตคำตอบนี้ทั้งสองวิธีภายในหนึ่งสัปดาห์

[อัพเดทสถานะ]

ฉันไม่พบข้อมูลทางเทคนิคที่ฉันต้องการ อย่างไรก็ตามฉันค่อนข้างแน่ใจว่าฉันยังมีอยู่ - อาจเป็นข้อมูลสำรอง CDR / DVDR เก่า ฉันจะอัปเดตคำตอบนี้เมื่อฉันพบมันหรือหลังจากฉันมั่นใจว่าจะไม่พบมัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.