如何找到哪些进程占用了所有内存?

如何找到哪些进程占用了所有内存?

我正在寻找诸如 top 之类的东西来了解 CPU 使用情况。 top 是否有一个命令行参数可以做到这一点?目前,我的内存已经满了,甚至“man top”也会因内存不足而失败:)

答案1

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

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

您也可以尝试:

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

这将给出内存使用量排名前 5 的进程。

答案2

如果您安装了它,我喜欢htop 启动它后,您可以按f6, down arrow(to MEM%)enter按内存排序。

答案3

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

prstat -a -s size

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

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

答案4

此命令将识别内存消耗最多的进程:

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

相关内容