我想知道如何计算一个进程的总CPU使用率。
如果我这样做,我认为相关字段是(取自lindevdoc.org):cat /proc/ _pid_ /stat
cat /proc/ _pid_ /stat
那么总花费时间是14到17字段的总和?
要计算特定进程的CPU使用率,您需要执行以下操作:
/proc/uptime
#1
/proc/[PID]/stat
#14
utime
#15
stime
#16
cutime
#17
cstime
#22
starttime
getconf CLK_TCK
sysconf(_SC_CLK_TCK)
首先,我们确定该过程花费的总时间:
total_time = utime + stime
我们还必须决定是否要包括子进程中的时间。如果这样做,则将这些值添加到total_time:
total_time
total_time = total_time + cutime + cstime
接下来,我们获取自该过程开始以来经过的总时间(以 秒为单位) :
seconds = uptime - (starttime / Hertz)
最后,我们计算CPU使用率百分比:
cpu_usage = 100 * ((total_time / Hertz) / seconds)