绘制进程的内存使用情况

时间:2011-11-03 16:19:58

标签: memory ubuntu process monitoring metrics

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

ps aux会显示一个数字快照,但是我真的很喜欢我可以观察到的变化,因为我会扼杀这个过程并希望看到意外的行为。

有人有任何建议吗?

6 个答案:

答案 0 :(得分:96)

我找不到任何真正的工具。

但是我找到了一套完整的小脚本来完成它。

使用这个小的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图像查看器打开图像,它会在图像发生变化时不断重新加载。因此,如果以上所有循环都是背景的,那么看起来您在图像查看器中运行了一个惊人的内存使用图形工具:)

我正在追踪的过程如下: Graph of rising memory usage

看起来我确实遇到了一些内存问题:(

大部分内容都是从http://brunogirin.blogspot.com.au/2010/09/memory-usage-graphs-with-ps-and-gnuplot.html中扯下来的,应归功于它。

答案 1 :(得分:14)

我真的很喜欢使用“htop”而不是“top”。这是非常丰富多彩的,有很多选项,如设置,搜索,反转,树,排序,好,杀。试一试:

$ sudo apt-get install htop

htop

答案 2 :(得分:3)

Top会做的伎俩

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

答案 3 :(得分:3)

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

https://github.com/parikls/mem_usage_ui

答案 4 :(得分:1)

Python软件包Memory Profiler也可以与非Python可执行二进制文件一起使用。

使用mprof生成可执行文件的完整内存使用情况报告并进行打印:

mprof run <executable>
mprof plot

剧情将是这样的:

Performance plot

它在PyPI上可用,因此可以安装:

pip install -U memory_profiler

答案 5 :(得分:0)

尝试在命令行中运行命令“top”。这将显示一个类似于Windows任务管理器的进程列表。