Pesquisa de site

Como verificar a RAM e o uso da CPU do contêiner Docker


Docker é uma das plataformas de conteinerização mais populares e amplamente utilizadas para construir, compartilhar e executar aplicativos. No mundo de hoje, a maioria dos aplicativos são implantados na plataforma de conteinerização, portanto, gerenciar um contêiner Docker é a principal tarefa de qualquer administrador de sistema. Docker permite verificar e monitorar o uso de recursos como CPU e uso de memória dos contêineres Docker.

Este tutorial mostrará como verificar o uso de CPU e RAM do contêiner Docker.

Pré-requisitos

  • Um servidor rodando Linux com Docker instalado.
  • Uma senha root é configurada no servidor.

Como monitorar e verificar o uso de CPU e RAM do Docker Container

O Docker fornece um subcomando de estatísticas que permite verificar a memória e a utilização da CPU dos contêineres do Docker em execução.

Para listar todos os comandos docker stats, execute o seguinte comando.

docker stats --help

Você obterá a seguinte saída.

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

Agora, vamos executar o comando docker stats para verificar o status de todos os contêineres em execução:

docker stats

Você obterá as informações de todos os contêineres em execução na saída a seguir.

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

Por padrão, o comando docker stats exibirá uma transmissão ao vivo de todas as estatísticas do contêiner. Se você quiser ver as primeiras estatísticas de todos os contêineres em execução, use o sinalizador --no-stream.

docker stats --no-stream

Você obterá a seguinte saída.

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

Por padrão, o comando docker stats exibirá as estatísticas de todos os contêineres em execução. Se você quiser exibir as estatísticas dos contêineres em execução e parados, use o sinalizador -a:

docker stats --no-stream -a

Se você quiser verificar o status de um contêiner específico, use o comando docker stats seguido do ID do contêiner.

docker stats cb40a0f56aba

Você obterá a seguinte saída.

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

Execute o comando a seguir para exibir apenas informações de CPU de todos os contêineres em execução.

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

Saída.

cb40a0f56aba 0.00%
e0ee5b16c93f 0.00%

Execute o comando a seguir para exibir apenas informações de CPU e memória de todos os contêineres em execução.

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

Saída.

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

Exibir o uso do contêiner Docker usando pseudoarquivos

Você também pode verificar as métricas do contêiner Docker nos grupos de controle localizados no diretório /sys/fs/cgroup no sistema host do contêiner Docker.

Primeiro, obtenha o ID do contêiner em execução usando o seguinte comando.

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

Você obterá a seguinte saída.

determined_robinson	cb40a0f56aba8b3a29513dafa7622f8d5d6435c9302dc6a3db73ea5eca506af5
portainer	e0ee5b16c93f358a15dfcb93cc80d2c2d1c1c675e7b65e41434ce20f08773465

Em seguida, execute o seguinte comando para obter as estatísticas do segundo contêiner.

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

Você obterá as métricas do contêiner na saída a seguir.

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

Conclusão

Neste post, mostramos como verificar o uso de CPU e memória do contêiner Docker por meio da linha de comando. Espero que isso ajude você a monitorar seu ambiente Docker. Sinta-se à vontade para me perguntar se tiver alguma dúvida.

Artigos relacionados: