是否有一个应用程序可以以类似于 top 的方式显示内存使用情况?

是否有一个应用程序可以以类似于 top 的方式显示内存使用情况?

我想在我的终端中运行一个应用程序,向我显示内存使用情况,类似于top显示 CPU 和其他信息,并iotop显示顶级 I/O 用户。

Top 和 iotop

有这样的应用程序吗?

PS我知道top也显示内存使用情况,但我说的是按顶部内存使用情况排序而不是显示任何其他信息(类似于iotop)。

答案1

我能找到的最接近的是memtop一个可用的 Python 脚本这里在 Google Code 上。

截屏: 在此处输入图片描述

如何使用记忆功能

  • 这是一个 Python 脚本,因此只需执行 asudo mv memtop-1.0.0.py /usr/bin/memtop.py和 achmod +x /path/to/memtop.py即可使其可执行
  • 默认更新周期为 15 分钟;使用开关-p 1将其改为 1 分钟等(除非修改源,否则不能低于该周期)
  • 使用-l N,其中 N 是您想要显示的进程数,取决于您的终端的大小。
  • 用于-m显示“更多”信息,即屏幕截图底部的交换/页面统计信息。

顶部伪装成记忆功能选项

如果你不使用htop其他选项,可以很容易地使用 F2-setup 选项进行设置,如下所示memtop

在此处输入图片描述

  • 顶部配置存储在~/.config/htop/htoprc,因此只需删除htoprc即可恢复正常顶部

答案2

我不知道有任何特定的应用程序可以实时监控你想要的内容,但我确实发现了一些可能有用的信息。

首先,这里有一个简单的命令来打印此信息ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS(在这里找到:http://www.linuxquestions.org/questions/linux-general-1/how-to-show-the-memory-usage-per-process-160181/

其次,这里还有一些有关执行相同操作的脚本的信息:

http://unixlive.editboard.com/t4-memory-usage-retrieval-on-linux-process-wise-and-general

http://unixlive.editboard.com/t5-how-much-ram-is-used-per-program

您可以编写自己的脚本/程序来满足您的需求。您需要的信息都是/proc/实时更新的,但您必须解决两个问题:

  1. 我怀疑是否有一个文件可以实时列出所有进程及其内存使用情况。相反,每个进程都有自己的文件(在/proc/[pid]/),并且一些用于查找此信息的潜在文件不是人类可读的——尽管我怀疑statmstatus拥有必要的信息并且都是人类可读的。
  2. 实时显示所有这些信息。我对 bash 脚本或编程知之甚少,但要实时显示信息,您需要使用类似大量tail命令和管道之类的东西来对每个进程仅排序/打印所需的信息。

虽然这不是一个完整的答案,但希望这能给你一些可以尝试的想法。祝你好运!

答案3

尝试一下watch memstat -w或者也许watch free -m

答案4

htop 非常棒。它相当轻量(不像 gnome-system-monitor。系统监控程序往往是使用率最高的程序,这对我来说毫无道理。)

按 F6,然后使用箭头键或鼠标切换到按 MEM% 排序。

相关内容