绘制进程的内存使用情况
有没有人知道一个工具来直观地显示在Ubuntu上选定的进程的内存使用情况?
ps aux
会显示一个数字快照,但是我真的很喜欢我可以看到的一个改变,因为我锤击这个过程并希望看到意外的行为。
有没有人有任何build议?
我找不到任何真正的工具来做到这一点。
但是我发现了一小堆整齐的脚本。
使用这个小bash循环做logging:
while true; do ps -C <ProgramName> -o pid=,%mem=,vsz= >> /tmp/mem.log gnuplot /tmp/gnuplot.script sleep 1 done &
这将创build一个名为/tmp/mem.log的内存使用情况很好的小日志文件。 然后使用下面的脚本(使用/tmp/gnuplot.script
),用gnuplot生成数据的图像:
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图像查看器打开图像,当图像发生变化时,图像不断重新加载。 所以如果所有上面的循环都是背景的,那么会出现一个令人惊叹的内存使用graphics工具,在图像浏览器中运行:)
我正在跟踪的过程如下所示:
它看起来像我有一些内存问题:(
其中大部分内容是从http://brunogirin.blogspot.com.au/2010/09/memory-usage-graphs-with-ps-and-gnuplot.html中撕下来的。;
我真的很喜欢用“htop”而不是“top”。 这是非常丰富多彩,有很多选项,如设置,search,倒置,树,sorting,好,杀。 试一试:
$ sudo apt-get install htop
上面会做的伎俩
top -b | grep {name of process} top -b -p {PID} top -b -u {userid}
尝试在命令行中运行“top”命令。 这将显示类似于Windows任务pipe理器的进程列表。