我想找到一个像 top 这样的工具,它可以在终端中运行,但可以保持实际/用户/系统使用时间的累计总数。
答案1
找到了……“top -S”
答案2
我认为 top 已经保存了 CPU 上花费的累计时间(用户+系统)。这就是 TIME+ 字段中列出的内容:
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
“实时”可能看起来并不是那么有趣——它只是自过程开始以来经过的时间。
如果您有兴趣自己动手,您需要的一切都在 /proc/*/stat 中:)
或者尝试使用 ps:
ps -eo pid,user,args,etime,time,%cpu --sort %cpu
watch -n1 ps -eo pid,user,args,etime,time,%cpu --sort -%cpu
(最后一行可能最接近你实际问的问题:)
答案3
我不知道我是否理解正确,但是top -a
(或)是Mac OS X 上top -c a
的累积模式。top
答案4
“top -S”、“ps --cumulative”或“pidstat -T ALL”的唯一问题是它们只将退出进程的时间添加到父进程的时间中。因此,如果子进程退出频率不高,您就无法实时监控 CPU 时间使用情况。