57

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
    Commented Nov 7, 2012 at 22:17
  • No, but it may be coming: #301, #920,
    – Raphael
    Commented Feb 4, 2022 at 20:57

3 Answers 3

31

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
    Commented Oct 22, 2019 at 0:17
  • 2
    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
    Commented Oct 23, 2019 at 0:02
  • 1
    Partially useful, but doesn't seem to really hide all the different entries when you scroll down. Commented Mar 2, 2021 at 18:29
  • 2
    This doesn't seem to provide cumulative resources usage. Commented Sep 16, 2021 at 11:01
21

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
    Commented 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
    Commented 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. Commented 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
    Commented 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. Commented Sep 16, 2021 at 13:51
13

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? Commented 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. Commented Sep 16, 2021 at 13:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .