制备
要计算特定进程的CPU使用率,您需要以下内容:
>系统的#1正常运行时间(秒)
>#14 utime – 在用户代码中花费的CPU时间,以时钟节拍为单位
>#15 stime – 在内核代码中花费的CPU时间,以时钟节拍为单位
>#16 cutime – 等待儿童在用户代码中花费的CPU时间(在时钟节拍中)
>#17 cstime – 等待孩子的CPU时间花在内核代码(在时钟滴答)
>#22 starttime – 进程开始的时间,以时钟节拍为单位
> Hertz(每秒的时钟滴答数)。
>在大多数情况下,getconf CLK_TCK可用于返回时钟滴答的数量。
> sysconf(_SC_CLK_TCK) C函数调用也可用于返回赫兹值。
计算
首先,我们确定该过程花费的总时间:
total_time = utime + stime
我们还必须决定是否要包括来自儿童过程的时间。如果我们这样做,那么我们将这些值添加到total_time:
total_time = total_time + cutime + cstime
接下来,我们得到从进程开始以来的总经过时间(秒):
seconds = uptime - (starttime / Hertz)
最后,我们计算CPU使用百分比:
cpu_usage = 100 * ((total_time / Hertz) / seconds)
也可以看看
07004
07005
07006