Wie man die RAM- und CPU-Auslastung von Docker-Containern überprüft
Docker ist eine der beliebtesten und am weitesten verbreiteten Containerisierungsplattformen zum Erstellen, Teilen und Ausführen von Anwendungen. Heutzutage werden die meisten Anwendungen auf der Containerisierungsplattform bereitgestellt, sodass die Verwaltung eines Docker-Containers die wichtigste Aufgabe eines Systemadministrators ist. Mit Docker kannst du die Ressourcennutzung wie CPU- und Speichernutzung der Docker-Container überprüfen und überwachen.
In diesem Lernprogramm lernst du, wie du die CPU- und RAM-Auslastung von Docker-Containern überprüfen kannst.
Voraussetzungen
- Ein Server mit Linux, auf dem Docker installiert ist.
- Ein Root-Passwort ist auf dem Server eingerichtet.
Wie du die CPU- und RAM-Auslastung von Docker-Containern überprüfst und überwachst
Docker bietet einen stats-Unterbefehl, mit dem du die Speicher- und CPU-Auslastung deiner laufenden Docker-Container überprüfen kannst.
Um alle Docker stats-Befehle aufzulisten, führe den folgenden Befehl aus.
docker stats --help
Du erhältst die folgende Ausgabe.
Usage: docker stats [OPTIONS] [CONTAINER...] Display a live stream of container(s) resource usage statistics Options: -a, --all Show all containers (default shows just running) --format string Pretty-print images using a Go template --no-stream Disable streaming stats and only pull the first result --no-trunc Do not truncate output
Führen wir nun den Befehl docker stats aus, um den Status aller laufenden Container zu überprüfen:
docker stats
Du erhältst die Informationen über alle laufenden Container in der folgenden Ausgabe.
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS cb40a0f56aba determined_robinson 0.00% 2.648MiB / 3.839GiB 0.07% 726B / 0B 0B / 12.3kB 3 e0ee5b16c93f portainer 0.84% 24.6MiB / 3.839GiB 0.63% 1.02MB / 4.35MB 0B / 721kB 5
In der Standardeinstellung zeigt der Befehl docker stats einen Live-Stream aller Container-Statistiken an. Wenn du die ersten Statistiken aller laufenden Container sehen willst, verwende das –no-stream Flag.
docker stats --no-stream
Du erhältst dann die folgende Ausgabe.
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS cb40a0f56aba determined_robinson 0.00% 2.648MiB / 3.839GiB 0.07% 796B / 0B 0B / 57.3kB 3 e0ee5b16c93f portainer 0.00% 25.5MiB / 3.839GiB 0.65% 1.03MB / 4.35MB 0B / 721kB 5
Standardmäßig zeigt der Befehl docker stats die Statistiken aller laufenden Container an. Wenn du die Statistiken von laufenden und gestoppten Containern anzeigen möchtest, verwende das Flag -a:
docker stats --no-stream -a
Wenn du den Status eines bestimmten Containers überprüfen willst, verwende den Befehl docker stats, gefolgt von der Container-ID.
docker stats cb40a0f56aba
Du erhältst dann die folgende Ausgabe.
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS cb40a0f56aba determined_robinson 0.00% 2.648MiB / 3.839GiB 0.07% 796B / 0B 0B / 57.3kB 3
Führe den folgenden Befehl aus, um nur die CPU-Informationen aller laufenden Container anzuzeigen.
docker stats --format "{{.Container}} {{.CPUPerc}}" --no-stream
Ausgabe.
cb40a0f56aba 0.00% e0ee5b16c93f 0.00%
Führe den folgenden Befehl aus, um nur die CPU- und Speicherinformationen aller laufenden Container anzuzeigen.
docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemPerc}}"
Ausgabe.
CONTAINER CPU % MEM % cb40a0f56aba 0.00% 0.07% e0ee5b16c93f 0.10% 0.59%
Docker-Container-Nutzung mit Pseudodateien anzeigen
Du kannst die Docker-Container-Metriken auch anhand der Kontrollgruppen überprüfen, die sich im Verzeichnis /sys/fs/cgroup auf dem Docker-Container-Hostsystem befinden.
Ermittle zunächst die Kennung aller laufenden Container mit dem folgenden Befehl.
docker ps --no-trunc --format "{{.Names}}\t{{.ID}}"
Du erhältst dann die folgende Ausgabe.
determined_robinson cb40a0f56aba8b3a29513dafa7622f8d5d6435c9302dc6a3db73ea5eca506af5 portainer e0ee5b16c93f358a15dfcb93cc80d2c2d1c1c675e7b65e41434ce20f08773465
Als nächstes führst du den folgenden Befehl aus, um die Statistiken des zweiten Containers zu erhalten.
cat /sys/fs/cgroup/system.slice/docker-e0ee5b16c93f358a15dfcb93cc80d2c2d1c1c675e7b65e41434ce20f08773465.scope/cpu.stat
Du erhältst die Container-Metriken in der folgenden Ausgabe.
usage_usec 1550758 user_usec 1301875 system_usec 248883 nr_periods 0 nr_throttled 0 throttled_usec 0
Fazit
In diesem Beitrag haben wir dir gezeigt, wie du die CPU- und Speichernutzung von Docker-Containern über die Kommandozeile überprüfen kannst. Ich hoffe, das hilft dir bei der Überwachung deiner Docker-Umgebung. Wenn du noch Fragen hast, kannst du sie mir gerne stellen.