2013-07-19 95 views
2

如何确定进程运行时间?Linux ps命令 - 获取进程运行时间 - etime和时间参数不同

约ps命令谷歌之后,我可以使用ps命令通过获取进程运行时间:

我在谷歌看到
ps -eo pid,id,cmd,etime,time 

大部分文章都使用ETIME(经过时间)来确定过程的运行时间。

但我也发现了一个类似的问题在stackoverflow.com Getting execution time of a user process in Linux和他/她使用时间参数?

所以我的问题是,ps命令中的etime和time参数与哪个参数能够获得进程的实际运行时间有什么不同。

回答

1

etime措施“挂钟时间”,差异。

time(别名为cputime)用于衡量CPU忙于执行进程代码的时间。当进程等待网络或磁盘或只是睡觉时,此计数器不会增加。当进程使用多个线程并行执行某些代码时,该计数器会与正在讨论的进程繁忙的CPU数成比例地增加。 time通常远小于etime,除非该过程进行繁重的计算。

$ man ps 

    etime  ELAPSED elapsed time since the process was started, in the form [[DD-]hh:]mm:ss. 
    time  TIME  cumulative CPU time, "[DD-]HH:MM:SS" format. (alias cputime).