จะค้นหากระบวนการใดที่ใช้หน่วยความจำทั้งหมด


84

ฉันกำลังมองหาบางอย่างเช่นด้านบนคือการใช้งาน CPU มีอาร์กิวเมนต์บรรทัดคำสั่งสำหรับด้านบนที่ทำเช่นนี้? ขณะนี้หน่วยความจำของฉันเต็มแล้วที่ว่า 'man top' ก็ล้มเหลวโดยไม่มีหน่วยความจำ :)


คำตอบ:


103

จากภายในtopคุณสามารถลองต่อไปนี้:

  • กดSHIFT+f
  • กดตัวอักษรที่สอดคล้องกับ% MEM
  • กด ENTER

คุณอาจลอง:

$ ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5

สิ่งนี้จะทำให้กระบวนการ 5 อันดับแรกโดยการใช้หน่วยความจำ


18
ภายใต้ Linux เพียงกดMเพื่อจัดเรียงตามการใช้หน่วยความจำกายภาพ (คอลัมน์ RES) ภายใต้ * BSD เรียกใช้หรือtop -o res top -o sizeแต่htopนั้นดีกว่ามากและไม่ได้ใช้หน่วยความจำมากกว่าด้านบน (แต่มันไม่ได้เป็นส่วนหนึ่งของชุดเครื่องมือพื้นฐานดังนั้นคุณอาจไม่ได้ติดตั้ง)
Gilles

2
ฉันต้องกดsเพื่อจัดเรียง%MEMและจากนั้นกดปุ่มหลบหนีเพื่อขึ้น
Bryce Guinta

11

หากคุณได้ติดตั้งผมชอบhtop ครั้งเดียวเปิดตัวคุณสามารถกดf6, down arrow(เพื่อMEM%) enterเพื่อจัดเรียงตามหน่วยความจำ


6

เมื่อtopเริ่มต้นให้กดFเพื่อสลับไปยังหน้าจอการเรียงลำดับ เลือกหนึ่งในฟิลด์ที่ระบุโดยกดปุ่มที่อยู่ด้านซ้าย คุณอาจต้องการNสำหรับMEM%


2
หากคุณต้องการ MEM% การกด 'M' จะทำตามที่ระบุไว้ข้างต้น 'c' เพิ่มพารามิเตอร์บรรทัดคำสั่งลงในรายการกระบวนการอาจเป็นข้อมูลสำหรับปัญหาของคุณ
กระดิก

6

ใน Solaris คำสั่งที่คุณต้องการคือ:

prstat -a -s size

นี่จะแสดงรายการกระบวนการทั้งหมดตามลำดับขนาดภาพกระบวนการ โปรดทราบว่าหลังขึ้นอยู่กับหน่วยความจำที่กำหนดให้กับกระบวนการโดยระบบปฏิบัติการไม่ใช่การใช้หน่วยความจำฟิสิคัลภายใน

มีรุ่น "top" ที่คาดคะเนสำหรับ Solaris แต่ไม่ได้เป็นส่วนหนึ่งของการติดตั้งมาตรฐาน


5

อีกทางเลือกหนึ่งที่ดีที่จะเป็นtop htopตรวจสอบว่ามันเป็นมิตรกับผู้ใช้มากกว่าด้านบนปกติ


1

คำสั่งนี้จะระบุกระบวนการที่ใช้หน่วยความจำสูงสุด:

ps -A --sort -rss -o pid,pmem:40,cmd:500 | head -n 6 | tr -s " " ";z"

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