Coder Perfect

On Linux, how do I get the CPU and memory consumption of a single process?

Problem

On Linux, I’d want to retrieve the CPU and memory use of a single process whose PID I know. Using the ‘watch’ command, I should be able to get it every second and save it to a CSV. What command can I use from the Linux command line to retrieve this information?

Asked by Supertux

Solution #1

ps -p <pid> -o %cpu,%mem,cmd

(You can omit “cmd,” although it may be useful for debugging.)

It’s worth noting that this shows the process’s average CPU utilization over the time it’s been running.

Answered by caf

Solution #2

top -p pid> is a variation of caf’s response.

This automatically updates the CPU use, making it useful for monitoring.

Answered by Manki

Solution #3

(Do not use) the ps command:

top command (should use):

To get real-time CPU use (current short interval), use top:

awk ‘print $9’ | top -b -n 2 -d 0.2 -p 6962 | tail -1 | top -b -n 2 -d 0.2 -p 6962

will sound like this: 78.6

Answered by vikyd

Solution #4

You can get the results by searching for the process name.

ps -C chrome -o %cpu,%mem,cmd

You can use process name without knowing its pid if you use the -C option.

Answered by amit

Solution #5

Use the pidstat command (from sysstat – Refer Link).

For example, if you want to monitor these two process IDs (12345 and 11223) every 5 seconds, you can do

$ pidstat -h -r -u -v -p 12345,11223 5

Answered by Neon

Post is based on https://stackoverflow.com/questions/1221555/retrieve-cpu-usage-and-memory-usage-of-a-single-process-on-linux