Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Graphing a process's memory usage

Does anyone know of a tool to visually show the memory usage of a selected process on Ubuntu?

ps aux will show a numerical snapshot, but I'd really like a line I can watch change as I hammer the process and hopefully see unexpected behaviours.

Has anyone got any suggestions?

like image 559
BanksySan Avatar asked Nov 03 '11 16:11

BanksySan


People also ask

How do I see how much memory a process is using?

In the Activity Monitor utility, you can see the name of each process running ("Process Name" column) and how much memory each process is using ("Real Mem" column).

How do you sort processes by memory usage in the top?

You can also filter processes by memory usage in top. To do this, press SHIFT + m as shown: Top will filter the processes by memory usage in descending order. Doing this can help identify the process using the most memory, giving you a chance to take action.


2 Answers

I couldn't find any real tools to do it.

But I have found a neat small set of scripts that'll do it.

Using this little bash loop to do the logging:

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

This will create a nice little log file of memory usage called /tmp/mem.log. Then it generates an image of the data with gnuplot using the following script (put this in /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" 

Then opening the image with the default GNOME image viewer it keeps reloading the image when it changes. So if all the above loop is backgrounded it will appear that you have an amazing memory usage graphing tool running within an image viewer :)

The process I'm tracking right now looks like this: Graph of rising memory usage

It looks like I do have some memory issues :(

Much of this was ripped from http://brunogirin.blogspot.com.au/2010/09/memory-usage-graphs-with-ps-and-gnuplot.html, credit where it is due.

like image 56
LovesTha Avatar answered Sep 29 '22 23:09

LovesTha


The accepted answer worked for me, but i was a bit tired to do all this stuff any time i want to measure memory, so i've created a small tool for this:

https://github.com/parikls/mem_usage_ui

like image 31
parikLS Avatar answered Sep 30 '22 01:09

parikLS