我想在我的终端中运行一个应用程序,向我显示内存使用情况,类似于top
显示 CPU 和其他信息,并iotop
显示顶级 I/O 用户。
有这样的应用程序吗?
PS我知道top也显示内存使用情况,但我说的是按顶部内存使用情况排序而不是显示任何其他信息(类似于iotop
)。
答案1
我能找到的最接近的是memtop
一个可用的 Python 脚本这里在 Google Code 上。
截屏:
如何使用记忆功能
- 这是一个 Python 脚本,因此只需执行 a
sudo 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/
实时更新的,但您必须解决两个问题:
- 我怀疑是否有一个文件可以实时列出所有进程及其内存使用情况。相反,每个进程都有自己的文件(在
/proc/[pid]/
),并且一些用于查找此信息的潜在文件不是人类可读的——尽管我怀疑statm
和status
拥有必要的信息并且都是人类可读的。 - 实时显示所有这些信息。我对 bash 脚本或编程知之甚少,但要实时显示信息,您需要使用类似大量
tail
命令和管道之类的东西来对每个进程仅排序/打印所需的信息。
虽然这不是一个完整的答案,但希望这能给你一些可以尝试的想法。祝你好运!
答案3
尝试一下watch memstat -w
或者也许watch free -m
。
答案4
htop 非常棒。它相当轻量(不像 gnome-system-monitor。系统监控程序往往是使用率最高的程序,这对我来说毫无道理。)
按 F6,然后使用箭头键或鼠标切换到按 MEM% 排序。