วิธีการอ่านการใช้งานหน่วยความจำใน htop?


30

มันเป็นผลผลิตของฉัน:

ป้อนคำอธิบายรูปภาพที่นี่

ตัวอย่างเช่นฉันสับสนกับสคริปต์ทับทิมนี้:

ป้อนคำอธิบายรูปภาพที่นี่

มีการใช้หน่วยความจำกายภาพกี่หน่วย? 3+1+8+51+51? 51? 51+51?


จากนั้นRESคอลัมน์คือคอลัมน์ที่คุณต้องการดู
David Schwartz

ใช่ฉันกำลังดูอยู่ แต่อันไหนคือการใช้งานหน่วยความจำโดยสคริปต์ของฉัน ทำไมถึงมีสอง51? กิน 102 เมกะไบต์หรือไม่ หรือเพียง 51 เมกะไบต์? ในกระบวนการ RES นอกมี RES กระบวนการภายในทำไม3, 1, 8มีทั้งหมดน้อยกว่า51?
Lai Yu-Hsuan

2
มีสอง 51 เพราะกระบวนการแยกกัน เป็นไปได้ว่าส่วนใหญ่จะไม่ใช้ 102 เมกะไบต์เนื่องจากกระบวนการทั้งสองนั้นใช้ 51 เมกะไบต์เดียวกัน แต่คุณไม่สามารถบอกได้อย่างง่ายดาย RES กระบวนการอื่นมีกระบวนการภายในหากหน่วยความจำนั้นมีถิ่นที่อยู่ในกระบวนการอื่นเช่นกันและไม่ใช่ถ้าไม่มี เขตข้อมูล RES จะบอกคุณว่าหน่วยความจำกายภาพแต่ละกระบวนการใช้หน่วยความจำเท่าใด แต่กระบวนการอื่นอาจ (หรืออาจไม่) ใช้หน่วยความจำกายภาพเดียวกันนั้นด้วย
David Schwartz

1
หากคุณต้องการทราบว่ากระบวนการทั้งสองใช้หน่วยความจำเดียวกันหรือไม่ให้ใช้ pmap -d <process id>
Sirch

1
@ LaiYu-Hsuan: ใช่คุณผิด ไม่ได้คัดลอกหน้าเว็บพวกเขากำลังแชร์ พวกเขาจะถูกคัดลอกก็ต่อเมื่อกระบวนการเขียนไปยังหน้านั้นแล้วพวกเขาจะต้องยกเลิกการแบ่งปัน (เรียกว่า "copy on write" หรือ "CoW")
David Schwartz

คำตอบ:


45

ซ่อนเธรดผู้ใช้ (shift + H) และปิดมุมมองแผนผังกระบวนการ (F5) จากนั้นคุณสามารถเรียงลำดับกระบวนการที่คุณสนใจด้วย PID และอ่านคอลัมน์ RES (เรียงลำดับตาม MEM% โดยกด Shift + M หรือ F3 เพื่อค้นหา ในบรรทัด cmd)


4
Shift-H คือสิ่งที่ฉันกำลังมองหาสำหรับทุกวัย ขอบคุณ!
เงินที่จ่ายเมื่อ

4

หน่วยความจำเป็นสิ่งที่ยากคุณไม่สามารถคำนวณหน่วยความจำกายภาพที่ใช้โดยเพียงแค่เรียกใช้ ps / htop / top หน่วยความจำสามารถใช้ร่วมกันระหว่างกระบวนการ

ฉันแนะนำให้คุณตรวจสอบการใช้งานด้วยสคริปต์นี้:

http://www.pixelbeat.org/scripts/ps_mem.py

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