Tão importante quanto escolher uma arquitetura é saber monitorar a performance das suas aplicações, quando usamos o Docker temos a vantagem de ter cada aplicação isolada em um container, no entanto medidas tradicionais como o uso do comando top ou a ferramenta de comando htop no linux irá mostrar todas as aplicações executando todas sobre o mesmissímo kernel do linux, nessas ferramentas você não conseguirá distinguir os containers isoladamente.
Nesse artigo vou mostrar como saber quais containers estão exigindo mais recursos do servidor utilizando um comando do próprio docker para isso.
docker stats ao resgate
Simples, porém muito eficiente, para todos aqueles familiarizados com o comando top do linux, essa é na minha opinião a melhor opção.
O comando é bem simples docker stats
Por exemplo, eu administro para um dos meus clientes um eco-sistema com mais de 30 containers, e para isso eu faço uso de um bom truque.
O comando é longo e meio feio, mas é bastante funcional, veja só:
$ docker stats $(docker ps|grep -v "NAMES"|awk '{ print $NF }'|tr "\n" " ")
Esse comando irá te mostrar um output em tempo real, veja exemplo:
CONTAINER CPU % MEM USAGE/LIMIT MEM % NET I/O ultra_cache_1 0.01% 6.98 MB/4.092 GB 0.17% 5.906 kB/648 B ultra_mysqlultra_1 0.06% 972.7 MB/4.092 GB 23.77% 15.22 MB/262.1 MB ultra_mysqlviajando_1 0.04% 872.6 MB/4.092 GB 21.32% 4.992 kB/648 B ultra_nginx_1 0.03% 49.53 MB/4.092 GB 1.21% 63.56 MB/78.01 MB ultra_phpultra_1 0.01% 186.3 MB/4.092 GB 4.55% 298 MB/70.59 MB ultra_phpviajando_1 0.01% 20.55 MB/4.092 GB 0.50% 4.394 kB/648 B ultra_ultradocker_1 0.00% 6.975 MB/4.092 GB 0.17% 6.422 kB/648 B ultra_viajandosempressa_1 0.01% 6.971 MB/4.092 GB 0.17% 6.176 kB/648 B
Posteriormente, vou ensinar também como executar containers de análise para os serviços do Datadog e do New Relic, mas até lá me diz oque você achou, se usa de outra forma, etc. Também pode me dizer oque você espera para os próximos artigos. Forte abraço e até breve.
Comentários