Discrepância de uso de memória entre Go Tool Pprof e Docker Stats
Ao usar Go 1.11, você pode encontrar uma discrepância no uso de memória relatada por Go ferramenta pprof (runtime.MemStats.sys) e estatísticas do docker. As estatísticas do Docker dependem de cgroups para obter informações de uso de memória, que incluem cache de página e tamanho do conjunto residente (RES). Por outro lado, o pprof exibe um valor fuzz para o uso de memória, tornando difícil a comparação direta entre os dois. para limitar e rastrear o uso de recursos dentro de um contêiner. A métrica usage_in_bytes em cgroups inclui a memória usada pelo processo e a memória em cache. Se um contêiner ler arquivos do sistema host, a memória armazenada em cache pelo kernel também será contada em uso_em_bytes.
Recuperação de memória no Docker
Se um contêiner atingir seu limite de memória, o Docker tenta recuperar a memória não utilizada. Isso é diferente de um erro OOM, que ocorre quando toda a memória foi usada.
Maneiras de limitar o uso de memória
Para controlar o uso de memória de um contêiner docker, você pode especificar um limite de memória no comando docker run ou no arquivo docker-compose.yml usando o mem_limit parâmetro.
Conclusão
A discrepância nos relatórios de uso de memória entre pprof e docker stats surge das diferentes maneiras como eles medem a utilização de memória. cgroups, conforme usado pelo docker stats, inclui memória cache de arquivo em seu cálculo, enquanto pprof apresenta um valor fuzz sem levar em conta o cache. Ao gerenciar limites de memória por meio de cgroups, você pode evitar o crescimento descontrolado de memória em seus contêineres.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3