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.