I was wondering if there was a way to use top or another program to track the memory consumption of a script I will be running. I was using

   runtime.totalMemory - runtime.freeMemory

But that's not cutting it, as it takes into consideration the whole system, not just the process I want to track.

I'm using a shell script to run a scala program which I want to have its memory usage tracked.

  • On something with a /proc filesystem and the pid of the child process, you could dig around thereunder for the per-process memory details. – thrig Jun 16 '16 at 17:45

Get the PID of the scala process you want to track using SCALAPID=$! after starting the scala process in background then find the memory usage of the process using ps -o size= -q $SCALAPID the returned value is in kilobytes


If you want to check memory of a process which is already running then try this:

# ./ps_mem.py
 Private  +   Shared  =  RAM used       Program

188.0 KiB +  52.0 KiB = 240.0 KiB       atd
 25.9 MiB +  66.0 KiB =  26.0 MiB       memcached
 53.1 MiB + 106.5 KiB =  53.2 MiB       named
453.2 MiB + 107.0 KiB = 453.3 MiB       mysqld
                          1.2 GiB

If you're asking about script you're going to run then I believe there's no way to check it because it may call whatsoever which it its turn can call a lot of stuff too etc.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.