uso - ver procesador en linux
¿Cómo registrar el consumo de memoria en Linux? (6)
Creo que agregar una entrada crontab será suficiente
*/5 * * * * free -m >> some_output_file
Hay otras herramientas como SeaLion , New Relic , Server Density, etc. que casi harán lo mismo pero son mucho más fáciles de instalar y configurar. Mi favorito es SeaLion, ya que es gratis y también ofrece una vista impresionante de la línea de tiempo de las salidas en bruto de los comandos comunes de Linux.
¿Hay alguna solución lista para usar para registrar el consumo de memoria desde el inicio del sistema? Me gustaría registrar los datos en un archivo de texto simple o en alguna base de datos para poder analizarlo más tarde.
Estoy trabajando en un sistema integrado basado en Linux 2.4. Necesito depurar el problema relacionado con el consumo de memoria. Mi aplicación se inicia automáticamente en cada inicio del sistema. Necesito la forma de obtener los datos con marcas de tiempo de intervalos regulares (tan a menudo como sea posible) para poder localizar el problema.
Los síntomas de mi problema: cuando el sistema se inicia, lanzo mi aplicación principal y la GUI para visualizar los parámetros principales del sistema. GUI basado en GTK + (servidor X). Si deshabilito la GUI y el servidor X, entonces mi aplicación funciona bien. Si habilito la GUI y el servidor X, no funciona cuando tengo 256 MiB o 512 MiB de memoria física instalada en la placa base. Si tengo 1 GiB de memoria instalada, entonces todo está bien.
El siguiente script imprime marcas de tiempo y un encabezado.
#!/bin/bash -e
echo " date time $(free -m | grep total | sed -E ''s/^ (.*)//1/g'')"
while true; do
echo "$(date ''+%Y-%m-%d %H:%M:%S'') $(free -m | grep Mem: | sed ''s/Mem://g'')"
sleep 1
done
El resultado se ve así (probado en Ubuntu 15.04, 64-bit).
date time total used free shared buffers cached
2015-08-01 13:57:27 24002 13283 10718 522 693 2308
2015-08-01 13:57:28 24002 13321 10680 522 693 2308
2015-08-01 13:57:29 24002 13355 10646 522 693 2308
2015-08-01 13:57:30 24002 13353 10648 522 693 2308
Hay un programa llamado
sar
en los sistemas * nix. Podría intentar usar eso para monitorear el uso de la memoria. Toma medidas a intervalos regulares. Hacer un
man sar
para más detalles. Creo que la opción es -r para tomar medidas de memoria, -i para especificar el intervalo que desea.
Podrías poner algo como
vmstat X >> mylogfile
en un script de inicio. Como su aplicación ya está en el inicio, puede agregar esta línea al final del script de inicialización que ya está usando su aplicación. (donde X es # de segundos entre los mensajes de registro)
Soy un gran admirador de registrar todo y me resulta útil saber qué procesos están usando la memoria y cuánto está usando cada proceso (así como las estadísticas de sumario). El siguiente comando registra una impresión superior ordenada por el consumo de memoria cada 0,5 segundos:
top -bd0.5 -o +%MEM > memory.log
Solo tenga en cuenta que el archivo de registro crecerá mucho más rápido que si solo almacena las estadísticas de utilización total de la memoria, así que asegúrese de no quedarse sin espacio en el disco.
Un pequeño guión como
rm memory.log
while true; do free >> memory.log; sleep 1; done