Docker容器CPU使用率

我正在使用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 docker stats命令类似的结果,但是这样做是正确的吗?

谢谢 :)

最终,这取决于您要测量的CPU使用率。

使用状态是循环的。 用户周期是在执行应用程序(包括在用户空间中执行的系统应用程序(如守护进程))中花费的周期。 内核周期是那些在执行基本操作系统或驱动程序function上花费的周期。 非基本的OSfunction在用户空间中执行。 未经计数的周期可能是空闲周期,那些无用的周期。

所以总的CPU使用率是(内核+用户)/(空闲+内核+用户)* 100。 用户CPU使用率为(用户))/(空闲+内核+用户)* 100。 你可以猜测系统%使用率的方程式。

system_cpu_usage困惑我。 如果它不是total_usage,而是指总周期,那么用(空闲+内核+用户)replace。 我困惑的是,如果system_cpu_usage是总使用量,那么total_usage到底是什么?