有没有人知道在Ubuntu上直观地显示所选进程的内存使用情况的工具?
ps aux
会显示一个数字快照,但是我真的很喜欢我可以观察到的变化,因为我会扼杀这个过程并希望看到意外的行为。
有人有任何建议吗?
答案 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图像查看器打开图像,它会在图像发生变化时不断重新加载。因此,如果以上所有循环都是背景的,那么看起来您在图像查看器中运行了一个惊人的内存使用图形工具:)
我正在追踪的过程如下:
看起来我确实遇到了一些内存问题:(
大部分内容都是从http://brunogirin.blogspot.com.au/2010/09/memory-usage-graphs-with-ps-and-gnuplot.html中扯下来的,应归功于它。
答案 1 :(得分:14)
我真的很喜欢使用“htop”而不是“top”。这是非常丰富多彩的,有很多选项,如设置,搜索,反转,树,排序,好,杀。试一试:
$ sudo apt-get install htop
答案 2 :(得分:3)
Top会做的伎俩
top -b | grep {name of process}
top -b -p {PID}
top -b -u {userid}
答案 3 :(得分:3)
可接受的答案对我有用,但是我想测量内存时每次都做这些事情有点累,所以我为此创建了一个小工具:
答案 4 :(得分:1)
Python软件包Memory Profiler也可以与非Python可执行二进制文件一起使用。
使用mprof
生成可执行文件的完整内存使用情况报告并进行打印:
mprof run <executable>
mprof plot
剧情将是这样的:
它在PyPI上可用,因此可以安装:
pip install -U memory_profiler
答案 5 :(得分:0)
尝试在命令行中运行命令“top”。这将显示一个类似于Windows任务管理器的进程列表。