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.

4 Answers 4

6

Found it... "top -S"

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 :)

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.

4
  • Tried it... "top: unknown argument 'a'"
    – dacracot
    Oct 13, 2009 at 19:26
  • It's top -S for the version I have. Oct 13, 2009 at 19:27
  • Strange, on Mac OS X, there's no -S argument. Different OS, different arguments.
    – Studer
    Oct 13, 2009 at 19:39
  • Not that strange. I work on Linux, Solaris, and AIX, and they all use different flags for common things. It'll make you crazy. Oct 13, 2009 at 19:57
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.

You must log in to answer this question.

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