42

I'd like to know how much resource a specific command is using.

top and htop displays information on per process basis but I'd like the information to be shown on per command basis. E.g. I'd like to know how much RAM chrome is using.

2
  • 5
    Utilities such as top and ps vary by OS. You should tag the question with the OS you are using.
    – jordanm
    Nov 7, 2012 at 22:17
  • No, but it may be coming: #301, #920,
    – Raphael
    Feb 4 at 20:57

3 Answers 3

24

Pressing H in htop group the processes by the main thread (command), actually it toggles the threads visibility.

4
  • 3
    It does hide the threads, although there can still be a tree of processes. Using tree view and collapsing the trees with F6 works to show only the process group, but sorting disables tree view.
    – Codebling
    Oct 22, 2019 at 0:17
  • 1
    I realised that in tree view, even with tree branches collapsed, it still doesn't show the totals, it's just per-process. There are columns that are supposed to list totals for children, but those don't seem to work, either. htop will not show totals no matter what you do.
    – Codebling
    Oct 23, 2019 at 0:02
  • 1
    Partially useful, but doesn't seem to really hide all the different entries when you scroll down.
    – 6005
    Mar 2, 2021 at 18:29
  • 1
    This doesn't seem to provide cumulative resources usage. Sep 16, 2021 at 11:01
15

This is possible in atop. Just press p when running it. From the help:

Accumulated figures:
        'u'  - total resource consumption per user
        'p'  - total resource consumption per program (i.e. same process name)
        'j'  - total resource consumption per container
5
  • Only thing stopping me from using atop is the cron dependency, but there's an open PR that will hopefully fix that
    – Codebling
    Oct 22, 2019 at 0:18
  • 1
    Update: the PR was accepted, and a new atop version will be released with no cron dependency.
    – Codebling
    Oct 31, 2019 at 4:27
  • This might not give the correct result for many commands. For instance, firefox launches many Web Content processes (superuser.com/questions/1299746/…), and these would show separately. There is no a priori way to tell which to sum. Sep 16, 2021 at 11:02
  • @sancho.sReinstateMonicaCellio that's true. You also won't see the resource usage of child processes launched by a xargs command, for that matter. Getting statistics about all child processes is somewhat tedious, although possible by following the breadcrumbs in procfs.
    – Nemo
    Sep 16, 2021 at 12:53
  • So there are at least two sets of processes that are not counted in the total sum. If I get it right, neither the top voted answer or this one really provide the result sought by the OP, they would actually provide a figure closer to the actual target than a "simple look". See this. Sep 16, 2021 at 13:51
11

You could run top in batch mode -b with 1 iteration -n1. You grep it, pipe it to awk, SUM the result and print it.

top -b -n1 | grep chrome | awk '{ SUM += $9} END { print SUM }'

I don't know which column you want to output. Change $9 to fit your needs.

2
  • What about converting to human readable format? Mar 5, 2021 at 13:34
  • This might not give the correct result for many commands. For instance, firefox launches many Web Content processes, that would not enter the sum (superuser.com/questions/1299746/…). ps -eo <several column identifiers>,command instead of top -b -n1 could fix this problem. See this. Sep 16, 2021 at 13:54

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.