Consumo pico de memoria general en Linux

Desafortunadamente, Linux no mantiene un registro del consumo pico de memoria general. Sí lo hace para un proceso pero no para la totalidad del sistema.

A falta de esto y como mero hack, el siguiente script se puede dejar corriendo durante un tiempo determinado:

#!/bin/bash

free -m -s 0.05 | while read A _ V _; do
  [ "$A" = "-/+" ] && [ "$V" -gt "${M:-0}" ] && { M=$V; echo $M; }
done

Ventajas:

  • No necesita de la instalación de ningún programa externo.
  • Es compatible con POSIX Shell.

Desventajas:

  • Funciona por sondeo (polling) cada 0.05 segundos. Esto significa que si entre muestra y muestra hay un pico que desaparece, éste no se reflejará. Idealmente el kernel llevaría el registro de manera asíncrona durante cada llamada a brk() y sbrk().
  • Podría no funcionar en locales con diferente separador decimal. Sería necesario cambiar 0.05 por 0,05. Tal vez se pudiera usar el parámetro $1 para evitar este problema.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *