问题描述
有人知道在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}