当前位置: 首页>>技术教程>>正文


绘制进程的内存使用情况图

, , , ,

问题描述

有人知道在Ubuntu上直观地显示选定进程的内存使用情况的工具吗?

ps aux将显示一个数字快照,但是我非常希望我能观察到发生变化的那条线,因为我会敲击该过程并希望看到意外的行为。

有没有人有任何建议?

最佳答案

我找不到任何真正的工具来做到这一点。

但是我发现了一组精巧的脚本可以做到。

使用这个小的bash循环进行日志记录:

while true; do
ps -C <ProgramName> -o pid=,%mem=,vsz= >> /tmp/mem.log
gnuplot /tmp/show_mem.plt
sleep 1
done &

这将创建一个很好的内存使用情况小日志文件,称为/tmp/mem.log。然后,使用以下脚本使用gnuplot生成数据的图像(将其放在/tmp/show_mem.plt中):

set term png small size 800,600
set output "mem-graph.png"

set ylabel "VSZ"
set y2label "%MEM"

set ytics nomirror
set y2tics nomirror in

set yrange [0:*]
set y2range [0:*]

plot "/tmp/mem.log" using 3 with lines axes x1y1 title "VSZ", \
     "/tmp/mem.log" using 2 with lines axes x1y2 title "%MEM"

然后使用默认的GNOME图像查看器打开图像,并在更改时继续重新加载图像。因此,如果上述所有循环都在后台运行,则似乎您在图像查看器中运行了一个惊人的内存使用情况绘图工具:)

我现在正在跟踪的过程如下所示:

看来我确实有一些 memory 问题:(

其中大部分是从http://brunogirin.blogspot.com.au/2010/09/memory-usage-graphs-with-ps-and-gnuplot.html处提取的,应归功于此。

次佳答案

我真的很喜欢使用”htop”而不是”top”。它非常丰富多彩,并且具有很多设置,例如设置,搜索,反转,树,排序方式,不错,可以杀死。试试看:

$ sudo apt-get install htop

第三种答案

可接受的答案对我有用,但是我每次要测量内存时都会做这些事情,我有点累了,所以我为此创建了一个小工具:

https://github.com/parikls/mem_usage_ui

第四种答案

顶将完成

top -b | grep {name of process}
top -b -p {PID}
top -b -u {userid}

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8239.html,未经允许,请勿转载。