Je suis nouveau dans les groupes de contrôle, et j'essaie d'obtenir les statistiques de conteneur en utilisant les groupes de contrôle. Auparavant, j'utilisais docker stats
mais, essayant de rassembler des métriques similaires avec cgroups
ainsi.métrique cpuPercent à partir de stats docker vs cgroups
Dans les stats docker, section cpu stats est comme ci-dessous:
"cpu_usage": {
"total_usage": 27120642519,
"percpu_usage": [27120642519],
"usage_in_kernelmode": 4550000000,
"usage_in_usermode": 19140000000
},
"system_cpu_usage": 42803030000000,
Et, la métrique cpu% est calculée en utilisant l'équation ci-dessous:
cpuDelta = float64(v.CpuStats.CpuUsage.TotalUsage - previousCPU)
systemDelta = float64(v.CpuStats.SystemUsage - previousSystem)
cpuPct = cpuDelta/systemDelta
Je cherche à cgroups pour recueillir systemUsage
et le totalUsage
, mais il ne semble pas avoir des mesures similaires:
cgroups a un pseudo fichier cpuacct.stats qui a user
et system
ticks, mais ceux-ci correspondent uniquement à usage_in_user_mode
et usage_in_kernel_mode
à partir de la sortie docker stats
. Et le fichier pseudo cpuacct.usage_per_cpu a une utilisation par cpu, qui correspond à total_usage
à partir de la sortie des stats docker ci-dessus.
$cat cpuacct.stat
user 1914
system 455
$cat cpuacct.usage_percpu
27120642519
Mais, je ne pouvais pas trouver un moyen de savoir comment recueillir « systemUsage » de cgroups.
Toutes les pistes seront d'une grande aide!
Merci!