我是cgroups的新手,並試圖使用cgroup獲取容器統計信息。以前我使用的是docker stats
,但是也試圖收集類似的指標,cgroups
也是如此。來自碼頭統計vs cgroup的cpuPercent度量
在泊塢窗統計,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
我在看的cgroup收集systemUsage
和totalUsage
,但它似乎沒有類似的指標:
cgroups有一個僞文件cpuacct.stats其中有user
和system
刻度,但這些僅與來自docker stats
輸出的usage_in_user_mode
和usage_in_kernel_mode
相匹配。
和cpuacct.usage_per_cpu僞文件每個cpu有一個用法,它與上面docker stats輸出中的total_usage
匹配。
$cat cpuacct.stat
user 1914
system 455
$cat cpuacct.usage_percpu
27120642519
但是,我找不到任何方法來弄清楚如何從cgroups收集「systemUsage」。
任何線索都會有很大的幫助!
謝謝!