มีคำอธิบายโดยละเอียดที่ดีมากที่นี่: https://blogs.kde.org/2005/09/15/measuring-memory-usage
แต่โดยพื้นฐานแล้วคุณต้องขุดและเข้าใจวิธีการตั้งค่าแอปพลิเคชัน
ตัวอย่างเช่นดูที่ mysql:
  PID  PPID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                    
 6004 16116 composit  20   0 37900  27m 2908 S    0  0.2   0:40.33 mysqld                                                                                                                                            
16115 16085 composit  20   0 37900  27m 2908 S    0  0.2   0:00.37 mysqld                                                                                                                                            
16116 16115 composit  20   0 37900  27m 2908 S    0  0.2   2:07.34 mysqld                                                                                                                                            
16117 16116 composit  20   0 37900  27m 2908 S    0  0.2   0:00.00 mysqld                                                                                                                                            
16118 16116 composit  20   0 37900  27m 2908 S    0  0.2   3:19.79 mysqld                                                                                                                                            
16119 16116 composit  20   0 37900  27m 2908 S    0  0.2   0:00.01 mysqld                                                                                                                                            
16120 16116 composit  20   0 37900  27m 2908 S    0  0.2   5:31.09 mysqld                                                                                                                                            
16121 16116 composit  20   0 37900  27m 2908 S    0  0.2  14:19.53 mysqld                                                                                                                                            
16122 16116 composit  20   0 37900  27m 2908 S    0  0.2  36:13.67 mysqld                                                                                                                                            
16123 16116 composit  20   0 37900  27m 2908 S    0  0.2  30:30.64 mysqld                                                                                                                                            
16124 16116 composit  20   0 37900  27m 2908 S    0  0.2   0:00.15 mysqld                                                                                                                                            
16493 16116 composit  20   0 37900  27m 2908 S    0  0.2   0:00.00 mysqld    
หน่วยความจำทั้งหมดที่ใช้มีค่าประมาณ 25 MB (ใช้เวลา 27 MB RES และลบการแชร์ (SHR))
ฉันตรวจสอบสิ่งนี้โดยการตรวจสอบการใช้งานหน่วยความจำทั้งหมด (ฟรี -m, + / บัฟเฟอร์ / แคช) ก่อนและหลังการออก "killall mysqld" หลังจากการฆ่ากระบวนการ mysqld ทั้งหมดการใช้หน่วยความจำลดลง 25 MB ตาม "free -m"
หากคุณเห็นว่าแต่ละกระบวนการมีคอลัมน์ VIRT, RES และ SHR ที่เหมือนกันพวกเขาน่าจะเป็นเพียงเธรดของกระบวนการเดียวกัน (ไลบราลีนุกซ์รุ่นเก่าจัดการทำเกลียวด้วยการวางไข่กระบวนการจริงหลายอย่างซึ่งโดยพื้นฐานแล้วครอบครองหน่วยความจำเดียวกัน)
หากมีความแตกต่างกันคุณอาจประเมินได้โดยใช้ SUM ของ (RES - SHR) แต่จะใช้งานได้ก็ต่อเมื่อกระบวนการนั้นอยู่ในความเป็นจริงแยกกระบวนการและไม่ใช่แค่เธรดของกระบวนการเดียวกัน การดู PPID (Parent Process ID) ก็ช่วยได้เช่นกัน หากพวกเขาทั้งหมดมีผู้ปกครองเดียวกันพวกเขาอาจเป็นเพียงกระทู้ (แม้ว่าไม่จำเป็น)
น่าเสียดายที่ไม่มีวิธีง่าย ๆ ในการตอบคำถามนี้ใน Linux วิธีง่ายๆคือการตรวจสอบ "ฟรี" ทันทีก่อนที่จะยกเลิกกระบวนการและตรวจสอบอีกครั้งทันทีหลังจาก ดูบรรทัด "- / + บัฟเฟอร์ / แคช:" และดูว่าการใช้หน่วยความจำลดลงเท่าใดและนั่นจะบอกคุณว่ากำลังใช้งานเท่าใด