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.

Das könnte dich auch interessieren …