คำถามนี้ครอบคลุมในรายละเอียดที่ดีที่นี่
คุณวัดการใช้หน่วยความจำของแอปพลิเคชั่นหรือกระบวนการใน Linux ได้อย่างไร?
จากบทความในบล็อกของใช้หน่วยความจำความเข้าใจบน Linux , ps
ไม่ได้เป็นเครื่องมือที่ถูกต้องที่จะใช้สำหรับความตั้งใจนี้
ทำไม
ps
"ผิด"ขึ้นอยู่กับว่าคุณมองอย่างไร
ps
จะไม่รายงานการใช้หน่วยความจำจริงของกระบวนการ สิ่งที่ทำจริง ๆ คือการแสดงว่าหน่วยความจำจริงแต่ละกระบวนการจะใช้เวลาเท่าใดหากเป็นกระบวนการเดียวที่ทำงานอยู่ แน่นอนเครื่อง Linux ทั่วไปมีกระบวนการหลายโหลทำงานในเวลาใดก็ตามซึ่งหมายความว่า vsz และหมายเลข RSS รายงานโดยps
เกือบจะแน่นอนที่ไม่ถูกต้อง
ps
ไม่ได้แสดงให้เห็นว่า - มันแสดงหมายเลขหน่วยความจำเสมือนและหน่วยความจำถิ่นที่ซึ่งจำนวนหน่วยความจำเสมือนสูงสุดที่กระบวนการสามารถใช้ในทางทฤษฎีมันเป็นกระบวนการเดียว (ไม่เช่นนั้น), ใช้ทุกหน้าเดียวที่จัดสรร และไม่ได้แมปหรือยกเลิกการแมปหน้าใด ๆ (ไม่น่าเป็นไปได้) ในขณะที่ถิ่นที่อยู่จะแสดงจำนวนหน่วยความจำเสมือนที่ถูกแมปกับฟิสิคัลในขณะนี้ virt > usage > res
อย่างไรก็ตามโดยทั่วไปแล้วในระบบ 64 บิตvirt ~= res*10
มันเป็นช่วงกว้างมาก