Herramienta de monitorización de sistemas linux casera.


Últimamente he tenido que hacer pruebas de rendimiento de un aplicativo y me he encontrado que tenía que caracterizar y ver el rendimiento de un servidor. Así que he preparado un pequeño script del que puedo extraer la información que necesito.

echo “Datos sistema”
uname -a


echo ; echo “Memoria”
free


echo ; echo “CPU”
cat /proc/cpuinfo | grep ‘model name’


echo; echo “Ips”
ifconfig


echo ; echo “Procesos”
ps -ef


echo ; echo “Datos de CPU y Memorias”
 while [ 1 ] ; do
   V1=`date +%d-%m-%y %H:%M:%S`
   top -n 1 -b | grep -E “top-“|”Tasks:”|”Cpu(s)”|”Mem:”|”Swap:”|sed “s/^/$V1 /”
   sleep 10
 done

En resumen lo que hace es:

  • Mostrar información del sistema: Sistema operativo, nombre del servidor, versión del kernel, .. (uname -a)
  • Mostrar información de la memoria: memoria física y swap disponible y ocupada, … (free)
  • Mostrar información de la CPU: número y modelo de las CPUs (cat /proc/cpuinfo …)
  • Mostrar información de los procesos que están corriendo en el servidor en el momento de lanzar el script (ps -ef).
  • Mostrar información de la interfaces de red: Ips, MAC, … (ifconfig )
  • En un bucle que se ejecuta cada 10 segundos (sleep 10) se extrae la información que muestra top para las tareas, CPUs, Memoria y Swap (top -n …) insertando delante de cada línea la fecha y la hora (V1=`date +%d … sed “s/…)
Con esto conseguimos conocer las configuración del sistema: memoria, swap, número y frecuencia de las CPUs, si se están ejecutando procesos que consumen recursos antes de empezar las pruebas, … Con estos datos, los logs de las aplicaciones y los resultados de las pruebas probablemente seamos capaces de determinar los problemas de rendimiento del servidor, como mínimo intuir la causa y poder hacer mas pruebas, ya con medidas mas específicas, para identificar los problemas.
Para explotar los datos lo que haremos será redirigir la salida del script a un fichero y después extraer la información que necesitemos de dicho fichero.
En concreto de este script me fijaré en los siguientes datos:
CPU

  • Carga media en un minuto
  • Carga media en 5 minutos
  • Carga media en 10 minutos.

      Esta métrica nos aisla los picos de uso de CPU y lo que permite ver es el comportamiento general de la máquina y como se recupera. Se considerará un mal valor de carga media las que sean superiores en 4 unidades al número de CPUs del sistema. Memoria

    • Memoria física y swap disponible.
    • Memoria física y swap en uso.
    • Memoria física y swap libre.
    Para extraer los datos usaremos los siguientes scripts:
    ~$ cat traza.log | grep ‘top -‘ | awk ‘gsub(/,/,”;”) gsub(/./,”,”) { print $1 “;” $2 “;”$14 $15 $16 }’ > resultado.loadaverage.csv


    ~$ cat traza.log | grep ‘Mem’ |awk ‘{ print $1 “;” $2 “;” $4 “;” $6 “;” $8 “;” $10 }’ > resultado.mem.csv
    El resultado lo carga directamente en excel/openoffice.

    Información de interés.
    http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html

    Compartir
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  

    Dejar un comentario

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