Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

188
Visualizações
¿Cómo encontrar la memoria MAX de las estadísticas de la ventana acoplable?

Con las docker stats , puede ver el uso de memoria de un contenedor a lo largo del tiempo.

¿Hay alguna manera de encontrar cuál fue el valor más alto de uso de memoria mientras se ejecutaban las docker stats ?

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Tomé un script de muestra de aquí y agregué datos de @pl_rock. Pero tenga cuidado: el comando de sort solo compara valores de cadena, por lo que los resultados suelen ser incorrectos (pero está bien para mí). También tenga en cuenta que la ventana acoplable a veces informa números incorrectos (es decir, más memoria asignada que RAM física).

Aquí está el guión:

 #!/bin/bash "$@" & # Run the given command line in the background. pid=$! echo "" > stats while true; do sleep 1 sample="$(ps -o rss= $pid 2> /dev/null)" || break docker stats --no-stream --format "{{.MemUsage}} {{.Name}} {{.Container}}" | awk '{ print strftime("%Y-%m-%d %H:%M:%S"), $0 }' >> stats done for containerid in `awk '/.+/ { print $7 }' stats | sort | uniq` do grep "$containerid" stats | sort -r -k3 | tail -n 1 # maybe: | sort -r -k3 -h | head -n 1 # see comment below (didnt tested) done
about 4 years ago · Santiago Trujillo Relatório

0

Si necesita encontrar el uso máximo, es mejor que solicite la opción .MemPerc y calcule en función de la memoria total (a menos que haya restringido la memoria disponible para el contenedor). .MemUsage tiene unidades que cambian durante la vida útil del contenedor que alteran el resultado.

 docker stats --format 'CPU: {{.CPUPerc}}\tMEM: {{.MemPerc}}'

Puede transmitir un registro en curso a un archivo (o secuencia de comandos).

Para obtener solo la memoria máxima como se solicitó originalmente:

 (timeout 120 docker stats --format '{{.MemPerc}}' <CONTAINER_ID> \ | sed 's/\x1b\[[0-9;]*[a-zA-Z]//g' ; echo) \ | tr -d '%' | sort -k1,1n | tail -n 1

Y luego puede pedirle al sistema su RAM total (suponiendo nuevamente que no limitó la RAM disponible para la ventana acoplable) y calcular:

 awk '/MemTotal/ {print $2}' /proc/meminfo

Necesitaría saber cuánto tiempo se ejecutará el contenedor cuando use el tiempo de espera como se indicó anteriormente, pero si docker stats se ejecutaron sin esto en segundo plano enviado por un script, podría eliminarlo una vez que se complete el contenedor.

...

Este comando le permite generar una serie temporal de la carga de CPU/memoria:

 (timeout 20 docker stats --format \ 'CPU: {{.CPUPerc}}\tMEM: {{.MemPerc}}' <CONTAINER_ID> \ | sed 's/\x1b\[[0-9;]*[a-zA-Z]//g' ; echo) \ | gzip -c > monitor.log.gz

Tenga en cuenta que se conecta a gzip. De esta forma, obtiene ~ 2 filas por segundo, por lo que el archivo aumentaría rápidamente si no lo hace.

Aconsejaría esto para la evaluación comparativa y la resolución de problemas en lugar de usarlo en contenedores de producción.

about 4 years ago · Santiago Trujillo Relatório

0

En mi caso, quería monitorear un contenedor docker que ejecuta pruebas para mi aplicación web. El conjunto de pruebas es bastante grande, incluye pruebas de JavaScript en un navegador real y consume una cantidad significativa de memoria y tiempo.

Idealmente, quería ver el uso actual de la memoria en tiempo real, pero también mantener el historial para un análisis posterior.

Terminé usando una versión modificada y simplificada de la solución de Keiran :

 CONTAINER=$(docker ps -q -f name=CONTAINER_NAME) FORMAT='{{.MemPerc}}\t{{.MemUsage}}\t{{.Name}}' docker stats --format $FORMAT $CONTAINER | sed -u 's/\x1b\[[0-9;]*[a-zA-Z]//g' | tee stats

Notas:

  • CONTAINER=$(docker ps -q -f name=NAME) # busca contenedor por nombre, pero hay otras opciones
  • FORMAT='{{.MemPerc}} ...}} # MemPerc va primero (para ordenar); de lo contrario puedes ser creativo
  • sed -u # el indicador -u es importante, desactiva el almacenamiento en búfer
  • | sed -u 's/\x1b\[[0-9;]*[a-zA-Z]//g' # elimina las secuencias de escape ANSI
  • | tee stats # no solo muestra el tiempo real, sino que también escribe en el archivo de estadísticas
  • Presiono Ctrl-C manualmente cuando esté listo; no es lo ideal, pero está bien para mí
  • después de eso, es fácil encontrar el máximo con algo como sort -n stats | tail
about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda