如何实时显示按内存使用情况排序的“ top”结果?


374

如何top在终端中实时显示结果,以便按内存使用量对列表进行排序?


24
在Linux上,><移动排序列左右。由于该%MEM列恰好在该%CPU列(也是默认的排序列)的右边,因此只需一次按键即可在两者之间切换。我知道,您的问题带有macintosh标记,这就是为什么我要将此答案写为评论。
Walter Tross

5
我更喜欢htop,主要是因为它告诉我如何执行此操作。
lindhe '16

Answers:


423

top在Linux / Unix中使用命令:

top
  • 运行命令后按shift+mtop
  • 或者您可以交互地选择要对哪一列进行排序
    • Shift+ f进入交互式菜单
    • updown箭头直到%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发行版以及与之捆绑的软件包。Debian 7使用了该版本,procps-ng并且根本没有-o选项。推出后SHIFT-M对我top有用。
Christopher Schultz

top -o %MEM适用于我的debian 8和9,但不适用于debian 7,@ Christopher Schultz是正确的。
加百列Hautclocq

而不是<key> enter </ key>,应该是<key> q </ key>
破破烂烂的

99

命令行选项-o(o代表“ Override-sort-field”)也可以在我的Xubuntu机器上使用,根据顶部的Mac手册页,它也应该在Macintosh上也可以使用。如果我想通过内存使用来做短,我通常会使用

top -o %MEM

按列排序%MEM。不过,我可以使用VIRTRES或者SHR太。在Macintosh上,我可能会使用memvsize

我不知道为什么或怎么做,但是在Unix系统之间,甚至在Linux发行版之间,这都是非常不同的。例如,-o在运行Wheezy的Raspberry上甚至都不可用。也许值得尝试一下。


2
答案可以使用户更加清楚:这%MEM是给渴望的读者的答案;虽然它不能在所有地方都有效(到目前为止)。
7heo.tk 2015年

1
对于Macbook 2014,这是说:top -o %MEM invalid argument -o: %MEM
anon58192932,2015年

听到这个消息我很抱歉。
ytg 2015年

这是唯一对centos真正有效的答案。
Amalgovinus 16'Mar

1
@ anon58192932,您应该用仅在运行时看到的任何列名替换%MEM(或PIDVIRT等)top。如ytg所述,“在Macintosh上,我可能会使用memvsize”。
ebosi

14

看来-o标志将采用实际的列名。因此,如果top命令仅显示“ mem”,则该命令应为“ top -o mem

对于我正在测试的ubuntu机器,该列称为“%MEM”。在我尝试过的OSX Yosemite上,它是“ mem”



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。您可以指定任何列。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.