Docker容器CPU使用率

时间:2015-11-08 20:43:27

标签: docker cpu-usage

我正在使用docker远程API来检索正在运行的容器的统计信息。对于CPU使用情况,我得到例如:

"cpu_stats": {
    "cpu_usage": {
      "total_usage": 13039191340,
      "percpu_usage": [
        13039191340
      ],
      "usage_in_kernelmode": 420000000,
      "usage_in_usermode": 10480000000
    },
    "system_cpu_usage": 8.8930204e+14,
    "throttling_data": {
      "periods": 0,
      "throttled_periods": 0,
      "throttled_time": 0
    }
  }

如何以百分比计算CPU使用率?当我将“usage_in_kernelmode”除以“total_usage”时,我得到与docker stats命令类似的结果,但这是正确的方法吗?

谢谢:)

1 个答案:

答案 0 :(得分:3)

最终,它取决于您想要衡量的CPU使用率。

使用状态是循环的。用户周期是用于执行应用程序的周期,包括在用户空间中执行的系统应用程序(如守护程序)。内核周期是执行基本 OS或驱动程序功能所花费的周期。非基本OS功能在用户空间中执行。未计入的周期可能是空闲周期,那些花费无用的。

因此,总CPU使用百分比是(内核+用户)/(空闲+内核+用户)* 100。用户CPU使用率为(用户))/(空闲+内核+用户)* 100。您可以猜测系统使用率的等式。

system_cpu_usage让我很困惑。如果它(而不是total_usage)指的是总周期,则用它替换(idle + kernel + user)。让我感到困惑的是,如果system_cpu_usage是总使用量,那么究竟是什么?total_usage?