วิธีแสดงผลลัพธ์ `สุดยอด 'เรียงตามการใช้หน่วยความจำแบบเรียลไทม์?


375

ฉันจะแสดงtopผลลัพธ์ในเทอร์มินัลตามเวลาจริงเพื่อให้รายการเรียงลำดับตามการใช้หน่วยความจำได้อย่างไร


24
บน Linux >และ<ย้ายคอลัมน์เรียงทางขวาและซ้าย เนื่องจาก%MEMคอลัมน์อยู่ทางด้านขวาของ%CPUคอลัมน์ซึ่งเป็นคอลัมน์เรียงลำดับเริ่มต้นจึงใช้การกดแป้นพิมพ์เพียงครั้งเดียวเพื่อสลับระหว่างสองคอลัมน์ ฉันรู้ว่าคำถามของคุณมีแท็ก macintosh นั่นคือเหตุผลที่ฉันเขียนคำตอบนี้เป็นความคิดเห็น
Walter Tross

5
ฉันชอบhtopส่วนใหญ่เพราะมันบอกวิธีการทำเช่นนี้
lindhe

คำตอบ:


424

ใช้topคำสั่งใน Linux / Unix:

top
  • กดshift+ mหลังจากเรียกใช้topคำสั่ง
  • หรือคุณสามารถเลือกคอลัมน์ที่ต้องการเรียงลำดับ
    • กดShift+ fเพื่อเข้าสู่เมนูโต้ตอบ
    • กดปุ่มupหรือdownลูกศรจนกว่า%MEMตัวเลือกจะถูกเน้น
    • กดsเพื่อเลือก%MEMตัวเลือก
    • กดenterเพื่อบันทึกการเลือกของคุณ
    • กดqเพื่อออกจากเมนูโต้ตอบ

หรือระบุลำดับการเรียงในบรรทัดคำสั่ง

# on OS-X
top -o MEM
# other distros
top -o %MEM

อ้างอิง

https://stackoverflow.com/questions/4802481/how-to-see-top-processes-by-actual-memory-usage


2
บน Linux เป็นtop -o %MEM(สังเกต "%")
Gabriel Hautclocq

@GabrielHautclocq ต้องขึ้นอยู่กับการแจกจ่าย Linux ของคุณและแพ็คเกจที่แถมมาด้วย เดเบียน 7 ใช้procps-ngและไม่มี-oตัวเลือกเลยในเวอร์ชันนั้น SHIFT-Mทำงานให้ฉันเมื่อtopเปิดตัว
Christopher Schultz

top -o %MEMทำงานบน debian ของฉัน 8 และ 9 แต่ไม่ใช่ใน debian 7 คุณพูดถูก @Christopher Schultz
Gabriel Hautclocq

แทน <key> ป้อน </key> ควรเป็น <key> q </key>
ขีดเส้นใต้

99

ตัวเลือกบรรทัดคำสั่ง-o(o ยืนสำหรับ "Override-sort-field") ยังทำงานบนเครื่อง Xubuntu ของฉันและตามหน้า man บนสุด Macก็ควรทำงานบน Macintosh ด้วย ถ้าฉันต้องการใช้หน่วยความจำระยะสั้นฉันมักจะใช้

top -o %MEM

%MEMซึ่งทุกประเภทจากคอลัมน์ แต่ผมสามารถใช้VIRT, RESหรือSHRมากเกินไป บนแมคอินทอชผมก็อาจจะใช้หรือmemvsize

ฉันไม่รู้ว่าทำไมหรืออย่างไร แต่นี่ก็ค่อนข้างแตกต่างกันมากระหว่างระบบ Unix และแม้กระทั่งระหว่างลีนุกซ์ลีนุกซ์. ตัวอย่างเช่น-oไม่มีแม้แต่ใน Raspberry ที่กำลังใช้ Wheezy อยู่ มันอาจจะคุ้มค่าที่จะลองดู


2
คำตอบอาจทำให้ผู้ใช้มีความชัดเจนมากขึ้น: %MEMเป็นคำตอบสำหรับผู้อ่านที่กระตือรือร้น ในขณะที่มันไม่ทำงานทุกที่ (โดยไกล)
7heo.tk

1
สำหรับ Macbook 2014 นี่เป็นการพูดว่า:top -o %MEM invalid argument -o: %MEM
anon58192932

เสียใจด้วย.
ytg

นี่เป็นคำตอบเดียวที่ใช้งานได้จริงกับ centos สำหรับฉัน
Amalgovinus

1
@ anon58192932 คุณควรแทนที่%MEM(หรือPID, VIRTฯลฯ ) ด้วยชื่อคอลัมน์ใด ๆ ที่คุณเห็นเมื่อเรียกใช้topเท่านั้น ตามที่ระบุไว้โดยytg "บน Macintosh ฉันอาจจะใช้memหรือvsize"
ebosi

14

ดูเหมือนว่าแฟล็ก -oจะใช้ชื่อคอลัมน์จริง ดังนั้นหากคำสั่งด้านบนแสดงให้เห็นเท่านั้น "ข่าว" แล้วคำสั่งที่ควรจะเป็น"ด้านบนข่าว -o "

สำหรับเครื่องอูบุนตูที่ผมทดสอบกับคอลัมน์ที่เรียกว่า"% MEM" ใน OSX โยเซมิตีฉันพยายามมันเป็น"ข่าว"


13

สำหรับ Ubuntu 14.04 เริ่มต้นด้วย

htop -s=MEM

ทำเคล็ดลับสำหรับฉัน


ทำงานได้ดีสำหรับ OSX เช่นกัน
ehime

มันเป็นคำสั่งที่แตกต่างกัน หาคำตอบเกี่ยวกับtopคำสั่ง (ตามที่ถามคำถามนี้) htopไม่ได้
ลูคัส

7

ถ้าทำงานอยู่แล้วให้กดtop o เหนือข้อมูลจะมีข้อความแจ้งปรากฏขึ้น:

primary key [xxxxx]:

xxxxxคีย์การเรียงลำดับปัจจุบันอยู่ที่ไหน พิมพ์ชื่อของคอลัมน์ที่คุณต้องการเรียงลำดับ หากชื่อคอลัมน์มี "%" หรือ "#" ให้เว้นอักขระนั้น สำหรับ% CPU เพียงพิมพ์ "cpu"


6

คำถามดั้งเดิมดูเหมือนว่าจะเป็นสำหรับ Mac แต่สำหรับใครก็ตามที่สะดุดกับคำตอบนี้บน Red Hat Linux (และอื่น ๆ อีกมากมาย) 'top -m' เริ่มต้นด้านบนด้วยผลลัพธ์ที่เรียงตามการใช้หน่วยความจำ


ไม่ใช่ใน Debian 8
marcovtwout

ทำงานบน: Red Hat Enterprise Linux Server รีลีส 6.8 (ไม่มีคำตอบอื่นใดที่ใช้งานได้)
Contango



2

หากคุณใช้สิ่งtopที่มาพร้อมกับ Ubuntu ( top -v= procps-ng version 3.3.10) คุณสามารถใช้แป้นพิมพ์ลัดแบบโต้ตอบเหล่านี้เพื่อเปลี่ยนการเรียงลำดับ โปรดทราบว่าเหล่านี้เป็นตัวพิมพ์ใหญ่ทั้งหมดดังนั้นอาจใช้หรือshiftcaps lock

M% MEM
NPID
P% CPU
TTIME +

โดยค่าเริ่มต้นพวกเขาจะถูกจัดเรียงตามลำดับ DESC ใช้Rเพื่อสลับ ASC / DESC

top -o %MEMในการตั้งค่าการเรียงลำดับจากตัวเลือกบรรทัดคำสั่งให้ใช้ คุณสามารถระบุคอลัมน์ใดก็ได้

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