如何从 procpidstat获取应用程序的总CPU使用率?

如何从 procpidstat获取应用程序的总CPU使用率?,第1张

如何从/ proc / pid / stat获取应用程序的总CPU使用率? 制备

要计算特定进程的CPU使用率,您需要执行以下 *** 作:

  1. /proc/uptime
    • #1
      系统正常运行时间(秒)
  2. /proc/[PID]/stat
    • #14
      utime
      -用户代码中花费的CPU时间,以 时钟滴答数为单位
    • #15
      stime
      -花费在内核代码中的CPU时间,以 时钟周期为单位
    • #16
      cutime
      - 等待的儿童 花费在用户代码中 CPU时间(以 时钟滴答为单位
    • #17
      cstime
      - 等待儿童的 CPU时间花费在内核代码中(以 时钟滴答为单位
    • #22
      starttime
      -进程开始的时间,以 时钟滴答为单位
  3. 系统的赫兹(每秒的时钟滴答数)。
    • 在大多数情况下,
      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)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5012053.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-14
下一篇 2022-11-14

发表评论

登录后才能评论

评论列表(0条)

保存