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

The*_*gan 506 memory top terminal

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

Ram*_*esh 590

top在 Linux/Unix 中使用命令:

top
Run Code Online (Sandbox Code Playgroud)
  • 运行命令后按shift+mtop
  • 或者您可以交互地选择要排序的列
    • Shift+f进入交互菜单
    • updown箭头,直到%MEM突出显示该选项
    • s选择%MEM选项
    • 按下enter以保存您的选择
    • q退出交互式菜单

或者在命令行指定排序顺序

# on OS-X
top -o MEM
# other distros
top -o %MEM
Run Code Online (Sandbox Code Playgroud)

参考

/sf/ask/336173701/

  • 在 Linux 上它是 `top -o %MEM`(注意“%”) (3认同)

ytg*_*ytg 116

命令行选项-o(o 代表“覆盖排序字段”)也适用于我的 Xubuntu 机器,根据顶部的 Mac 手册页,它也适用于 Macintosh。如果我想缩短内存使用量,我通常使用

top -o %MEM
Run Code Online (Sandbox Code Playgroud)

按列排序%MEM。但是我可以使用VIRT,RES或者SHR也可以。在 Macintosh 上,我可能会使用memvsize.

我不知道为什么或如何,但这在 Unix 系统之间甚至在 Linux 发行版之间有很大不同。例如,-o在运行 Wheezy 的 Raspberry 上甚至不可用。不过可能值得一试。

  • 答案可以让用户更清楚:`%MEM` 是给热心读者的答案;虽然它在任何地方都不起作用(到目前为止)。 (3认同)
  • 对于 Macbook 2014,这是说:`top -o %MEM invalid argument -o: %MEM` (2认同)
  • @anon58192932 你应该用你在运行 `top` 时看到的任何列名替换 `%MEM`(或 `PID`、`VIRT` 等)。正如 *ytg* 所指出的,“在 Macintosh 上,我可能会使用 `mem` 或 `vsize`”。 (2认同)

小智 17

对于 Ubuntu 14.04,从

htop -s PERCENT_MEM
Run Code Online (Sandbox Code Playgroud)

帮我解决了这个问题。

  • 这是不同的命令。寻找有关 `top` 命令(如本问题中所问)而不是 `htop` 的答案。 (2认同)

小智 15

似乎-o标志将采用实际的列名。所以如果 top 命令只显示 "mem" 那么命令应该是"top -o mem "

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


小智 8

如果top已经在运行,请按o 。在数据上方,会出现提示:

primary key [xxxxx]:
Run Code Online (Sandbox Code Playgroud)

xxxxx当前排序键在哪里。键入要作为排序依据的列的名称。如果列名包含“%”或“#”,则省略该字符。对于 %CPU,只需键入“cpu”。


小智 6

最初的问题似乎是针对 Mac 的,但对于在 Red Hat Linux(和许多其他人)上遇到此答案的任何其他人,'top -m' 以按内存使用情况排序的结果开头。


小智 5

Ubuntu 14.04 - 这工作得很好:

htop --sort-key=PERCENT_MEM
Run Code Online (Sandbox Code Playgroud)

  • htop 不是 top (5认同)

小智 5

在 Linux 上,运行:

$ top
Run Code Online (Sandbox Code Playgroud)

然后按Shift+ M


wis*_*cky 5

如果您使用的top是 Ubuntu ( top -v= procps-ng version 3.3.10)附带的,那么您可以使用这些交互式键盘快捷键来更改排序。请注意,这些都是大写字母,因此请使用shiftcaps lock

M%MEM
NPID
P%CPU
T时间+

默认情况下,它们将按 DESC 顺序排序。使用R可切换ASC / DESC。

要从命令行选项设置排序,请使用top -o %MEM. 您可以指定任何列。