¿Cómo mido la memoria máxima de una aplicación que se ejecuta en Linux?
Ejecuto esta aplicación en lote, por lo que no puedo usar RSS, ya que informa la memoria actual. Necesito que la memoria máxima que la aplicación ha utilizado se informe al final.
El VmPeak tampoco es una solución, ya que informa la memoria asignada y tampoco calcula a partir del Ram real sino también del disco duro.
Respuestas:
Aquí hay 2 métodos para rastrear el uso máximo de memoria de un proceso.
Almibarado
No he usado esta herramienta, pero suena como lo que estás buscando. Se llama jarabe .
Descripción
Ejemplo
/usr/bin/time -v
Sí, irónicamente, el comando de tiempo GNU puede darle el uso máximo de memoria de un proceso. Informa el pico de memoria de esta manera:
Maximum resident set size (kbytes)
.Ejemplo
Referencias
fuente
Aunque el tema es bastante antiguo, quiero compartir otro proyecto que surgió de la función del núcleo cgroups Linux.
https://github.com/gsauthof/cgmemtime :
Los ejemplos de uso serían:
fuente
wait4
para capturar la salida del proceso en combinación con cgroups (memory.max_usage_in_bytes
), lo que parece tener sentido. Más detalles están disponibles en el archivo README en github.