从docker统计vs cgroups的cpuPercent度量
我是新来的cgroups,并尝试使用cgroups获取容器统计信息。 以前我使用docker stats
但也尝试收集与cgroups
类似的指标。
在docker统计,CPU统计部分如下所示:
"cpu_usage": { "total_usage": 27120642519, "percpu_usage": [27120642519], "usage_in_kernelmode": 4550000000, "usage_in_usermode": 19140000000 }, "system_cpu_usage": 42803030000000,
而且,CPU百分比度量使用以下等式来计算:
cpuDelta = float64(v.CpuStats.CpuUsage.TotalUsage - previousCPU) systemDelta = float64(v.CpuStats.SystemUsage - previousSystem) cpuPct = cpuDelta/systemDelta
我在看cgroups收集systemUsage
和totalUsage
,但它似乎没有类似的指标:
cgroups有一个伪文件cpuacct.stats,它具有user
和system
滴答,但是这些只与usage_in_user_mode
docker stats
输出中的usage_in_user_mode
和usage_in_kernel_mode
匹配。
而cpuacct.usage_per_cpu伪文件的每个CPU使用率都与上面输出的total_usage
stats的total_usage
匹配。
$cat cpuacct.stat user 1914 system 455 $cat cpuacct.usage_percpu 27120642519
但是,我找不到任何方法来弄清楚如何从cgroups收集“systemUsage”。
任何线索将是非常有帮助的!
谢谢!