在docker的CPU使用率计算是什么:TotalUsage,SystemUsage,PercpuUsage和计算是什么意思?
我看到在docker来源的CPU计算,但我不明白什么是确切的
- TotalUsage
- SystemUsage
- PercpuUsage
为什么cpuDelta
除以SystemDelta
,为什么然后乘以PercpuUsage
?
该文件说cpuDelta
//计算读数之间容器的CPU使用情况的变化
和systemDelta
:
//计算整个系统在读数之间的变化
所以不应该将这些三angular洲的总和除以在该三angular洲时间的总CPU(或总纳秒)? 毕竟container
同时使用了cpuDelta
和cpuDelta
更新 :我想我得到它的总容量是容器的使用量,而SystemUsage不是容器使用的系统CPU,而是整个系统超出了容器的CPU,这就是为什么他们分开。
在问题18615有类似的讨论,导致PR 13627“更新”docker统计“计算”
我认为
cpuPercent = (cpuDelta / systemDelta) * float64(len(v.CpuStats.CpuUsage.PercpuUsage))
是正确的,因为:
cpuDelta
是所有核心和总共消耗的时间systemDelta
也是所有内核消耗的总时间,所以
(cpuDelta / systemDelta)
是每个核心的平均CPU使用率,所以需要乘以CPU核心数量来计算总的CPU使用率。例如,在4核系统上,cpu使用率可以在0到400%之间,因此必须乘以核心数量。