Bagaimana cara menampilkan hasil `top` yang diurutkan berdasarkan penggunaan memori secara real time?

375

Bagaimana saya bisa menampilkan tophasil di terminal saya secara real time sehingga daftar diurutkan berdasarkan penggunaan memori?

Theodor Coogan
sumber
24
Di Linux, >dan <pindahkan kolom sortir ke kanan dan kiri. Karena %MEMkolom berada tepat di sebelah kanan %CPUkolom, yang juga merupakan kolom pengurutan default, hanya diperlukan satu keystroke untuk beralih di antara keduanya. Saya tahu, pertanyaan Anda memiliki tag macintosh, itu sebabnya saya menulis jawaban ini sebagai komentar.
Walter Tross
5
Saya lebih suka htop, terutama karena itu memberi tahu saya bagaimana melakukan ini.
lindhe

Jawaban:

424

Gunakan topperintah di Linux / Unix:

top
  • tekan shift+ msetelah menjalankan topperintah
  • atau Anda dapat secara interaktif memilih kolom mana yang akan dipilih
    • tekan Shift+ funtuk masuk ke menu interaktif
    • tekan panah upatau downhingga %MEMpilihan disorot
    • tekan suntuk memilih %MEMpilihan
    • tekan enteruntuk menyimpan pilihan Anda
    • tekan quntuk keluar dari menu interaktif

Atau tentukan urutan pengurutan pada baris perintah

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

Referensi

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

Ramesh
sumber
2
Di Linux itu top -o %MEM(perhatikan "%")
Gabriel Hautclocq
@GabrielHautclocq Ini harus bergantung pada distribusi Linux Anda, dan paket yang disertakan dengannya. Debian 7 menggunakan procps-ngdan tidak ada -oopsi sama sekali dalam versi itu. SHIFT-Mbekerja untuk saya setelah topdiluncurkan.
Christopher Schultz
top -o %MEMbekerja pada debian 8 dan 9 saya, tetapi tidak pada debian 7, Anda benar @ Christopher Schultz.
Gabriel Hautclocq
alih-alih <key> masukkan </key> itu harus <key> q </key>
dashesy
99

Opsi baris perintah -o(o singkatan dari "Override-sort-field") juga berfungsi pada mesin Xubuntu saya dan menurut halaman manual Mac di atasnya itu juga bisa digunakan pada Macintosh. Jika saya ingin kekurangan penggunaan memori saya biasanya menggunakan

top -o %MEM

yang macam dengan kolom %MEM. Tapi saya bisa menggunakan VIRT, RESatau SHRjuga. Pada Macintosh saya mungkin akan menggunakan mematau vsize.

Saya tidak tahu mengapa atau bagaimana tetapi ini sangat berbeda antara sistem Unix dan bahkan antara distribusi Linux. Sebagai contoh -obahkan tidak tersedia di Raspberry saya menjalankan Wheezy. Mungkin patut dicoba.

ytg
sumber
2
Jawabannya bisa pengguna lebih jelas: %MEMdiberikan sebagai jawaban untuk pembaca yang bersemangat; sementara itu tidak berfungsi di mana-mana (sejauh ini).
7heo.tk
1
Untuk Macbook 2014 ini dikatakan:top -o %MEM invalid argument -o: %MEM
anon58192932
Saya turut berduka mendengarnya.
ytg
Ini adalah satu-satunya jawaban yang benar-benar bekerja pada centos untuk saya.
Amalgovinus
1
@ anon58192932 Anda harus mengganti %MEM(atau PID, VIRT, dll) dengan nama kolom yang Anda lihat ketika menjalankan topsaja. Seperti dicatat oleh ytg , "pada Macintosh saya mungkin akan menggunakan mematau vsize".
ebosi
14

Sepertinya -o flag akan mengambil nama kolom yang sebenarnya. Jadi jika perintah top hanya menunjukkan "mem" maka perintah itu harus "top -o mem " .

Untuk mesin ubuntu yang saya uji, kolomnya disebut "% MEM" . Pada OSX Yosemite yang saya coba, itu "mem" .

GlennTPeace
sumber
13

Untuk Ubuntu 14,04 dimulai dengan

htop -s=MEM

melakukan trik untukku.

Borjovsky
sumber
Berfungsi dengan baik untuk OSX juga.
ehime
itu perintah yang berbeda. Mencari jawaban tentang topperintah (seperti yang ditanyakan dalam pertanyaan ini) tidak htop.
Lukas
7

Jika topsudah berjalan, tekan o . Di atas data, sebuah prompt akan muncul:

primary key [xxxxx]:

Di mana xxxxxkunci penyortiran saat ini. Ketikkan nama kolom yang ingin Anda urutkan. Jika nama kolom berisi "%" atau "#", abaikan karakter tersebut. Untuk% CPU, ketikkan "cpu".

George Boutin
sumber
6

Pertanyaan aslinya tampaknya adalah untuk Mac, tetapi bagi siapa pun yang menemukan jawaban ini, di Red Hat Linux (dan banyak lainnya), 'top -m' mulai teratas dengan hasil yang diurutkan berdasarkan penggunaan memori.

Anthony
sumber
Bukan pada Debian 8
marcovtwout
Bekerja pada: Red Hat Enterprise Linux Server merilis 6.8 (tidak ada jawaban lain yang berfungsi).
Contango
4

Di linux, jalankan:

$ top

Lalu tekan, Shift+ M.

JBaczuk
sumber
2

Ubuntu 14.04 - ini berfungsi dengan baik:

htop --sort-key=PERCENT_MEM
Коста Великов
sumber
3
htop bukan top
Anthon
2

Jika Anda menggunakan topyang datang dengan Ubuntu ( top -v= procps-ng version 3.3.10), maka Anda dapat menggunakan pintasan keyboard interaktif ini untuk mengubah pengurutan. Perhatikan bahwa ini semua adalah huruf kapital, jadi gunakan shiftatau caps lock.

M% MEM
NPID
P% CPU
TTIME +

Secara default, mereka akan diurutkan dalam urutan DESC. Gunakan Runtuk beralih ASC / DESC.

Untuk mengatur pengurutan dari opsi baris perintah, gunakan top -o %MEM. Anda dapat menentukan kolom apa saja.

wisbucky
sumber