Ako skontrolovať využitie pamäte RAM a CPU kontajnera Docker


Na tejto stránke

  1. Predpoklady
  2. Ako monitorovať a kontrolovať využitie CPU a RAM kontajnera Docker
  3. Zobraziť využitie kontajnera Docker pomocou pseudosúborov
  4. Záver

Docker je jednou z najpopulárnejších a najpoužívanejších kontajnerových platforiem na vytváranie, zdieľanie a spúšťanie aplikácií. V dnešnom svete je väčšina aplikácií nasadená na kontajnerovej platforme, takže správa kontajnera Docker je kľúčovou úlohou každého správcu systému. Docker vám umožňuje kontrolovať a monitorovať využitie zdrojov, ako je CPU a využitie pamäte kontajnermi Docker.

Tento tutoriál vám ukáže, ako skontrolovať využitie procesora a pamäte RAM kontajnera Docker.

Predpoklady

  • Server so systémom Linux s nainštalovaným Dockerom.
  • Na serveri je nakonfigurované heslo root.

Ako monitorovať a kontrolovať využitie CPU a RAM kontajnera Docker

Docker poskytuje podpríkaz štatistiky, ktorý vám umožňuje kontrolovať pamäť a využitie CPU kontajnerov Docker.

Ak chcete zobraziť zoznam všetkých príkazov docker stats, spustite nasledujúci príkaz.

docker stats --help

Dostanete nasledujúci výstup.

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

Teraz spustite príkaz docker stats na kontrolu stavu všetkých spustených kontajnerov:

docker stats

Informácie o všetkých bežiacich kontajneroch získate v nasledujúcom výstupe.

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

V predvolenom nastavení príkaz docker stats zobrazí živý prenos všetkých štatistík kontajnerov. Ak chcete vidieť prvé štatistiky všetkých spustených kontajnerov, použite príznak --no-stream.

docker stats --no-stream

Dostanete nasledujúci výstup.

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

V predvolenom nastavení príkaz docker stats zobrazí štatistiky všetkých spustených kontajnerov. Ak chcete zobraziť štatistiky spustených aj zastavených kontajnerov, použite príznak -a:

docker stats --no-stream -a

Ak chcete skontrolovať stav konkrétneho kontajnera, použite príkaz docker stats nasledovaný ID kontajnera.

docker stats cb40a0f56aba

Dostanete nasledujúci výstup.

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

Spustite nasledujúci príkaz, aby ste zobrazili iba informácie o CPU všetkých spustených kontajnerov.

docker stats --format "{{.Container}} {{.CPUPerc}}" --no-stream

Výstup.

cb40a0f56aba 0.00%
e0ee5b16c93f 0.00%

Spustite nasledujúci príkaz, aby ste zobrazili iba informácie o CPU a pamäti všetkých spustených kontajnerov.

docker stats --format "table {{.Container}}\t{{.CPUPerc}}\t{{.MemPerc}}"

Výstup.

CONTAINER      CPU %     MEM %
cb40a0f56aba   0.00%     0.07%
e0ee5b16c93f   0.10%     0.59%

Zobraziť využitie kontajnera Docker pomocou pseudosúborov

Môžete tiež skontrolovať metriky kontajnera Docker z kontrolných skupín, ktoré sa nachádzajú v adresári /sys/fs/cgroup v hostiteľskom systéme kontajnera Docker.

Najprv získajte ID všetkých spustených kontajnerov pomocou nasledujúceho príkazu.

docker ps --no-trunc --format "{{.Names}}\t{{.ID}}"

Dostanete nasledujúci výstup.

determined_robinson	cb40a0f56aba8b3a29513dafa7622f8d5d6435c9302dc6a3db73ea5eca506af5
portainer	e0ee5b16c93f358a15dfcb93cc80d2c2d1c1c675e7b65e41434ce20f08773465

Potom spustite nasledujúci príkaz, aby ste získali štatistiky druhého kontajnera.

cat /sys/fs/cgroup/system.slice/docker-e0ee5b16c93f358a15dfcb93cc80d2c2d1c1c675e7b65e41434ce20f08773465.scope/cpu.stat

Metriky kontajnera získate v nasledujúcom výstupe.

usage_usec 1550758
user_usec 1301875
system_usec 248883
nr_periods 0
nr_throttled 0
throttled_usec 0

Záver

V tomto príspevku sme vám ukázali, ako skontrolovať využitie procesora a pamäte kontajnera Docker pomocou príkazového riadka. Dúfam, že vám to pomôže monitorovať vaše prostredie Docker. Ak máte nejaké otázky, neváhajte sa ma opýtať.