如何找到占用所有内存的进程?


Answers:


103

top您可以从内部尝试以下操作:

  • SHIFT+f
  • 按与%MEM对应的字母
  • ENTER

您也可以尝试:

$ ps -eo pmem,pcpu,vsize,pid,cmd | sort -k 1 -nr | head -5

这将按内存使用量列出前5个进程。


18
在Linux下,只需按即可按M物理内存使用量排序(“ RES”列)。在* BSD下,运行top -o restop -o size。但是htop更好,甚至不比top消耗更多的内存(但是它不是基本工具集的一部分,因此您可能没有安装它)。
吉尔斯(Gilles)2010年

2
我必须按s进行排序%MEM,然后按Escape排在最前面。
布莱斯·昆塔

11

如果您已经安装了它,我喜欢htop 在启动它后按f6down arrow(至MEM%enter按内存排序。


6

一旦top启动,请按F切换到排序字段屏幕。通过按左侧列出的键选择列出的字段之一;你可能想NMEM%


2
如果需要MEM%,则按“ M”执行上述操作。'c'将命令行参数添加到进程列表,可能对您的问题有用。
wag 2010年

6

在Solaris中,您需要的命令是:

prstat -a -s size

这将按递减的映像大小列出所有进程。请注意,后者基于操作系统提交给进程的内存,而不是其驻留的物理内存使用率。

可能有适用于Solaris的“ top”版本,但这些不是标准安装的一部分。


5

一个不错的替代方法tophtop。选中它,它比常规top更友好。


1

此命令将确定最消耗内存的进程:

ps -A --sort -rss -o pid,pmem:40,cmd:500 | head -n 6 | tr -s " " ";z"

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.