Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

187
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda