How can I display the top
results in my terminal in real time so that the list is sorted by memory usage?
10 Answers
Use the top
command in Linux/Unix:
top
- press shift+m after running the
top
command - or you can interactively choose which column to sort on
- press Shift+f to enter the interactive menu
- press the up or down arrow until the
%MEM
choice is highlighted - press s to select
%MEM
choice - press enter to save your selection
- press q to exit the interactive menu
Or specify the sort order on the command line
# on OS-X
top -o MEM
# other distros
top -o %MEM
References
https://stackoverflow.com/questions/4802481/how-to-see-top-processes-by-actual-memory-usage
-
9
-
@GabrielHautclocq It must depend upon your distribution of Linux, and the package bundled with it. Debian 7 uses
procps-ng
and there is no-o
option at all in that version.SHIFT-M
works for me oncetop
is launched. Commented Sep 1, 2017 at 13:59 -
top -o %MEM
works on my debian 8 and 9, but not on debian 7, you are right @Christopher Schultz. Commented Sep 3, 2017 at 17:16 -
-
The command line option -o
(o standing for "Override-sort-field") also works on my Xubuntu machine and according to the Mac man page of top it should work on a Macintosh too. If I want to short by memory usage I usually use
top -o %MEM
which sorts by the column %MEM
. But I can use VIRT
, RES
or SHR
too. On a Macintosh I would probably use mem
or vsize
.
I don't know why or how but this is pretty much different between Unix systems and even between Linux distributions. For example -o
isn't even available on my Raspberry running Wheezy. It may be worth give it a try though.
-
3The answer could user more clarity:
%MEM
is given as an answer to the eager reader; while it doesn't work everywhere (by far).– 7heo.tkCommented May 6, 2015 at 15:00 -
2For Macbook 2014 this is saying:
top -o %MEM invalid argument -o: %MEM
Commented Jun 1, 2015 at 17:43 -
-
2@anon58192932 you should replace
%MEM
(orPID
,VIRT
, etc.) by any column name that you see when runningtop
only. As noted by ytg, "on a Macintosh I would probably usemem
orvsize
".– ebosiCommented Mar 29, 2017 at 1:59 -
1
For Ubuntu 14.04 starting with
htop -s PERCENT_MEM
or (equivalently)
htop --sort-key PERCENT_MEM
did the trick for me.
-
-
4it's different command. Looking for answer about the
top
command (as asked in this question) nothtop
. Commented Oct 28, 2018 at 9:55 -
htop
is obviously a completely different tool in a different package. In lots of cases you have no choice buttop
because there's nohtop
to install– phuclvCommented Aug 3, 2022 at 4:31
It seems like the -o flag will take the actual column name. So if the top command shows only "mem" then the command should be "top -o mem".
For the ubuntu machine I am testing with, the column is called "%MEM". On the OSX Yosemite I tried, it is "mem".
-
use
top -O
to get a list of the field names which could be used for that -o argument Commented Jun 4, 2022 at 17:30
If you're using the top
that comes with Ubuntu (top -v
= procps-ng version 3.3.10
), then you can use these interactive keyboard shortcuts to change the sorting. Note that these are all capital letters, so either use shift
or caps lock
.
M
%MEM
N
PID
P
%CPU
T
TIME+
By default, they will be sorted in DESC order. Use R
to toggle ASC/DESC.
To set the sorting from the command line option, use top -o %MEM
. You can specify any column.
The original question seems to have been for a Mac, but for anyone else stumbling across this answer, on Red Hat Linux (and many others), 'top -m' starts top with results sorted by memory usage.
-
-
1Worked on: Red Hat Enterprise Linux Server release 6.8 (none of the other answers worked).– ContangoCommented Mar 21, 2017 at 17:18
Ubuntu 14.04 - this works just fine:
htop --sort-key=PERCENT_MEM
-
5
If top
is already running, press o . Above the data, a prompt will appear:
primary key [xxxxx]:
Where xxxxx
is the current sorting key. Type the name of the column by which you want to sort. If a column name contains "%" or "#", omit the character. For %CPU, just type "cpu".
On RHEL 7 & 8, after running top
I just type >
to move across columns to sort by.
Since it starts sorted by CPU, only one >
is required.
A commenter on the original question has also suggested this.
>
and<
move the sort column right and left. Since the%MEM
column is just right of the%CPU
column, which is also the default sort column, it takes only one keystroke to switch between the two. I know, your question has the macintosh tag, that's why I'm writing this answer as a comment.htop
, mainly because it tells me how to do this.htop
, in addition toshift + M
, you will likely want to turn off the display of threads and just show the main process memory consumption withshift + H
. See unix.stackexchange.com/a/10403/27902.