10

I would like to find a tool such as top, that runs in a terminal, but that keeps a cumulative total of real/user/system time used.

dacracot
  • 469
  • 2
  • 12
  • 28

4 Answers4

6

Found it... "top -S"

dacracot
  • 469
  • 2
  • 12
  • 28
2

top already keeps a cumulative total of time spent on the cpu (user+system) I believe. That's what's listed in the TIME+ field:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5117 michael   20   0  508m 238m  30m R   16  6.1   7:55.47 firefox
 3135 root      20   0  194m  53m  14m S    8  1.4  26:37.08 X
 4359 michael   20   0  117m  83m  14m S    1  2.1  17:59.34 gnome-panel

'real time' probably isn't that interesting to watch - it's just the amount of elapsed time since the process started.

If you're interested in hacking it up yourself, everything you need is in /proc/*/stat :)

Or try using ps:

ps -eo pid,user,args,etime,time,%cpu --sort %cpu
watch -n1 ps -eo pid,user,args,etime,time,%cpu --sort -%cpu

(the very last line is probably closest to what you actually ask :)

MikeyB
  • 38,725
  • 10
  • 102
  • 186
1

I don't know if I understand correctly, but top -a (or top -c a) is the cumulative mode of top on Mac OS X.

Studer
  • 1,340
  • 9
  • 16
0

The only problem with "top -S", "ps --cumulative" or "pidstat -T ALL" that they only add exited processes' times to parents'. Thus you can't monitor CPU time usage real time, if child processes don't exit too often.

user77376
  • 193
  • 1
  • 5