Erhalten Sie Docker Container CPU-Auslastung als Prozentsatz
Docker bietet eine interaktive stats Befehl docker stats [cid]
gibt aktuelle Informationen über die CPU-Auslastung, etwa so:
CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O
36e8a65d 0.03% 4.086 MiB/7.798 GiB 0.05% 281.3 MiB/288.3 MiB
Ich versuche die CPU-Auslastung als Prozentsatz in ein verdauliches format zu tun einige Analyse.
Ich gesehen habe, die stats in /sys/fs, die wohl ähnliche Werte wie die Docker Remote APIdie gibt mir diese JSON-blob:
{
"cpu_usage": {
"usage_in_usermode": 345230000000,
"total_usage": 430576697133,
"percpu_usage": [
112999686856,
106377031910,
113291361597,
97908616770
],
"usage_in_kernelmode": 80670000000
},
"system_cpu_usage": 440576670000000,
"throttling_data": {
"throttled_time": 0,
"periods": 0,
"throttled_periods": 0
}
}
Aber ich bin mir nicht sicher, wie genau die CPU-Auslastung als Prozentsatz aus.
Irgendwelche Ideen?
InformationsquelleAutor der Frage Dan LaManna | 2015-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie gehen, um die Verwendung der Stats-API-Aufruf - Sie können nehmen Sie einen Blick an, wie der docker-client funktioniert es: https://github.com/docker/docker/blob/eb131c5383db8cac633919f82abad86c99bffbe5/cli/command/container/stats_helpers.go#L175-L188
Im Grunde, Sie nehmen einen Bezugspunkt, dann sehen Sie den Unterschied in sagen wir 10 Sekunden, dann können Sie sagen, wie viel von der Zeit verwendet wurde, durch die container. Sagen wir, wir starten mit 0 SystemCPUUsage und 0 CPUUsage für den container. Wenn nach 10 Sekunden, wir haben 10 SystemCPUUsage und 1 CPUUsage, dann haben wir 10% Auslastung. Sie sind gerade angesichts der Ergebnisse in Nanosekunden, nicht in Sekunden, in der API. Die tatsächliche Uhrzeit spielt keine Rolle, die insgesamt SystemCPUUsage ändern ist das, was zählt, dann vergleichen CPUUSage.
InformationsquelleAutor der Antwort Michael
Nachdem wir verbrauchen die remote-api bekommen wir diese Felder: precpu_stats/cpu_stats
Dann, grundsätzlich ist hier der code: (javascript-Beispiel)
Genau zu klären, die RESULT_CPU_USAGE... es ist die Menge der Ressourcen verbraucht, von der physischen hardware, also angenommen, Sie sind immer RESULT_CPU_USAGE als 50%es bedeutet, dass 50% alle Ihre PC-Leistung wird von den container X
InformationsquelleAutor der Antwort Thiago Martins