要计算特定进程的CPU使用率,您需要执行以下 *** 作:
/proc/uptime
#1
系统正常运行时间(秒)
/proc/[PID]/stat
#14
utime
-用户代码中花费的CPU时间,以 时钟滴答数为单位#15
stime
-花费在内核代码中的CPU时间,以 时钟周期为单位#16
cutime
- 等待的儿童 花费在用户代码中 的 CPU时间(以 时钟滴答为单位 )#17
cstime
- 等待儿童的 CPU时间花费在内核代码中(以 时钟滴答为单位 )#22
starttime
-进程开始的时间,以 时钟滴答为单位
- 系统的赫兹(每秒的时钟滴答数)。
- 在大多数情况下,
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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)