Diferencia entre revisiones de «Monitorizar un proceso»

De Recursos Educativos
Ir a la navegación Ir a la búsqueda
(Página creada con «Pongamos que queremos monitorizar la CPU y memoria que consume un proceso Linux a lo largo del tiempo y no tenemos ninguna herramienta en el servidor, ni [https://en.wikipe...»)
 
Línea 12: Línea 12:
while [[ today != doomsday ]] ;
while [[ today != doomsday ]] ;
do
do
   fichero=/var/tmp/lac/NombreProceso.$(date +%Y-%m-%d).stats
   fichero=/tmp/NombreProceso.$(date +%Y-%m-%d).stats
   echo -n "$(date +%d-%H:%M:%S) " >> ${fichero}
   echo -n "$(date +%d-%H:%M:%S) " >> ${fichero}
   ps -e -o fname,pid,pcpu,etime,vsz,osz,rss | grep NombreProceso >> ${fichero}
   ps -e -o fname,pid,pcpu,etime,vsz,osz,rss | grep NombreProceso >> ${fichero}

Revisión del 19:33 30 mar 2018

Pongamos que queremos monitorizar la CPU y memoria que consume un proceso Linux a lo largo del tiempo y no tenemos ninguna herramienta en el servidor, ni munin, ni Cacti, ni nada parecido. O puede que tengamos estas herramientas pero que necesitemos un gráfico con una granularidad de menos de 5 minutos.

Este método no tiene dependencias en el servidor en el que se ejecuta. Una vez generados los datos este ejemplo usa GNUplot para pintar el resultado, pero se podría usar una hoja de cálculo.

Recolectar los datos

En la maquina en la que corra el proceso NombreProceso creamos el siguiente script monitor.sh:

#!/bin/bash

while [[ today != doomsday ]] ;
do
  fichero=/tmp/NombreProceso.$(date +%Y-%m-%d).stats
  echo -n "$(date +%d-%H:%M:%S) " >> ${fichero}
  ps -e -o fname,pid,pcpu,etime,vsz,osz,rss | grep NombreProceso >> ${fichero}
  sleep 5 ;
done;

Y lo lanzamos asi:

nohup ./monitor.sh &

Pintarlos

En un GIF con GNUplot por ejemplo, seria:

gnuplot << __EOF__
set terminal gif
set style line 1 lt 1 lw 0
set style line 2 lt 2 lw 0
set style line 3 lt 3 lw 0
set style line 4 lt 4 lw 0
set style line 5 lt 5 lw 0
set style line 6 lt 6 lw 0
set style line 7 lt 7 lw 0
set style line 8 lt 8 lw 0
set xdata time
set timefmt "%d-%H:%M:%S"
set format x "%H:%M"
plot "$1"  using 1:4 with lines title "mbe-cache1" ls 1, "$2"  using 1:4 with lines title "mbe-cache2" ls 2, "$3"  using 1:4 with lines title "mbe-cache3" ls 3
quit
__EOF__