Qiao
Qiao

Reputation: 512

How to monitor memory usage of all processes in Linux?

I'm developing a program running on embedded Linux (Debian Buster), and I found the program sometimes has performance issues. After some debugging process, I doubt the issue might not be in my program. Instead, somehow the OS start doing memory swap and my program was swapped to the file system.

Therefore, I use the code here to verify. And it turns out my program occupied much less physical memory after about 500 seconds, and it matches the hypothesis.

Now I want to find which process suddenly takes lots of memory at that point, but I don't know how.

Is there anyway to keep monitoring memory usage of all processes (or the top 10) of the system and dump to a log file? Any tools or commands would be good.

Thanks.

memory usage of my program compare to total memories

Upvotes: 1

Views: 920

Answers (1)

shaleenbathla
shaleenbathla

Reputation: 29

I'm developing a program running on embedded Linux

It will be helpful, if you could specify which embedded Linux you are working on. Based on that, there are tools that someone could suggest.

For Linux, I would say, you could use:

top -p [PID]

you can get PID by:

ps [options]

I am not sure if there is a problem while using the command line?

dump to a log file

I think you could use grep to dump the terminal output to a log file you can create using touch command.

Upvotes: 0

Related Questions