2012-01-21

Medir sencillamente el rendimiento de una página web con ApacheBench

Incluido con el popular servidor web de Apache hay una pequeña aplicación que permite hacer unas sencillas pruebas de carga y rendimiento de un servidor web.

Se trata de ApacheBench, ab, un pequeño ejecutable muy útil para medir de una forma muy simple el rendimiento de una página web.

El comando admite como parámetros, entre otros, el número de peticiones que vamos a realizar (-n), el número de peticiones concurrentes que vamos a realizar (-c) y la página web que vamos a testear.

ab -n 1000 -c 10 http://www.nioos.com/

En este ejemplo estamos lanzando 1000 peticiones (-n 1000), simulando 10 usuarios que usan la página a la vez de forma simultanea (-c 10), contra la página web http://www.nioos.com/.

Los resultado indican, entre otras cosas, el tiempo promedio que tarda el servidor en responder todas estas peticiones.

Concurrency Level:      10
Time taken for tests:   53.875 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      2451000 bytes
HTML transferred:       2204000 bytes
Requests per second:    18.56 [#/sec] (mean)
Time per request:       538.750 [ms] (mean)
Time per request:       53.875 [ms] (mean, across all concurrent requests)
Transfer rate:          44.43 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       47   54  95.1     47    3047
Processing:    47  482 283.8    453    3453
Waiting:       47  304 316.0    297    3453
Total:         94  536 298.8    500    3500




2012-01-16

Monitorizar el tráfico de las tarjetas de red con IPTraf en linux Debian

IPTraf es una aplicación que nos proporciona estadísticas sobre las tarjetas de red del sistema.

Su instalación es muy sencilla


apt-get install iptraf

La aplicación se arranca ejecutando el comando

iptraf

y es muy simple de utilizar.

Es especialmente útil si nuestro sistema usa discos iSCSI o similar (como es el caso de las máquinas virtuales de Amazon EC2) y sospechamos que tenemos un cuello de botella en el rendimiento de nuestro sistema debido a la red.

Monitorizar el tráfico de las tarjetas de red con IPTraf en linux CentOS

IPTraf es una aplicación que nos proporciona estadísticas sobre las tarjetas de red del sistema.

Su instalación es muy sencilla

yum install iptraf

La aplicación se arranca ejecutando el comando

iptraf

y es muy simple de utilizar.

Es especialmente útil si nuestro sistema usa discos iSCSI o similar (como es el caso de las máquinas virtuales de Amazon EC2) y sospechamos que tenemos un cuello de botella en el rendimiento de nuestro sistema debido a la red.


2012-01-15

Monitorizar tomcat con monit en linux Debian

Monit nos permite también monitorizar procesos o servicios específicos (anteriormente vimos como se puede monitorzar el espacio en disco ó la CPU del sistema).

Podemos comprobar si están siendo ejecutados, si consumen demasiada CPU ó memoria, si están escuchando en el puerto TCP/IP adecuado, etc.

Para hacer esto lo más simple es usar el PID del proceso.

Para tomcat podemos definir el fichero PID definiendo la variable de entorno CATALINA_PID al nombre de un fichero que contendrá el PID de tomcat.

El script de arranque de tomcat "/etc/init.d/tomcat" quedará entonces:

#! /bin/sh
### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Tomcat
# Description:       Tomcat
### END INIT INFO
# Author: Hipolito Jimenez <hipolito.jimenez@gmail.com>
#
# Please remove the "Author" lines above and replace them
# with your own name if you copy and modify this script.
# Do NOT "set -e"
do_start()
{
        su - tomcat -c "export CATALINA_PID=/opt/tomcat/logs/tomcat.pid; export JAVA_HOME=/opt/java; /opt/tomcat/bin/startup.sh"
        iptables -t nat --append PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
}
#
# Function that stops the daemon/service
#
do_stop()
{
        su - tomcat -c "export CATALINA_PID=/opt/tomcat/logs/tomcat.pid; export JAVA_HOME=/opt/java; /opt/tomcat/bin/shutdown.sh"
        iptables -t nat --flush
}
case "$1" in
  start)
        do_start
        ;;
  stop)
        do_stop
        ;;
  *)
        echo "Usage: tomcat {start|stop}" >&2
        exit 3
        ;;
esac




Para monitorizar tomcat desde monit ahora debemos añadir la siguiente regla al fichero de configuración "/etc/monit/monitrc":

check process tomcat with pidfile /opt/tomcat/logs/tomcat.pid
  if failed port 8080 then alert

Esta regla nos alertará por email si tomcat no está corriendo (si el PID del fichero no está en memoria) y si ese proceso no tiene abierto el puerto 8080.

Monitorizar tomcat con monit en linux CentOS

Monit nos permite también monitorizar procesos o servicios específicos (anteriormente vimos como se puede monitorzar el espacio en disco ó la CPU del sistema).

Podemos comprobar si están siendo ejecutados, si consumen demasiada CPU ó memoria, si están escuchando en el puerto TCP/IP adecuado, etc.

Para hacer esto lo más simple es usar el PID del proceso.

Para tomcat podemos definir el fichero PID definiendo la variable de entorno CATALINA_PID al nombre de un fichero que contendrá el PID de tomcat.

El script de arranque de tomcat "/etc/init.d/tomcat" quedará entonces:

#!/bin/sh
#
# chkconfig: 2345 20 80
# description: Tomcat
#
start()
{
        su - tomcat -c "export CATALINA_PID=/opt/tomcat/logs/tomcat.pid;/opt/tomcat/bin/startup.sh"
        iptables -t nat --append PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
}
stop()
{
        su - tomcat -c "export CATALINA_PID=/opt/tomcat/logs/tomcat.pid;/opt/tomcat/bin/shutdown.sh"
        iptables -t nat --flush
}
case "$1" in
        start)
                start
                ;;
        stop)
                stop
                ;;
        *)
                echo $"Usage: $0 {start|stop}"
                exit 1
esac

Para monitorizar tomcat desde monit ahora debemos añadir la siguiente regla al fichero de configuración "/opt/monit/conf/monitrc":

check process tomcat with pidfile /opt/tomcat/logs/tomcat.pid
  if failed port 8080 then alert

Esta regla nos alertará por email si tomcat no está corriendo (si el PID del fichero no está en memoria) y si ese proceso no tiene abierto el puerto 8080.

2012-01-08

Monitorizar el espacio libre en disco con monit en linux Debian

Con monit, además de monitorizar la memoria y la CPU de nuestra máquina linux Debian, podemos monitorizar el espacio en disco de nuestro sistema.

Lo primero es averiguar el nombre de los dispositivos que queremos monitorizar.
Para esto podemos usar el comando

df -h
que devuelve el nombre de cada dispositivo de almacenamiento y el espacio libre que queda disponible.

Ahora podemos editar el fichero de configuración de monit (/etc/monit/monitrc) para añadir las siguientes líneas:
check filesystem fs01 with path /dev/sda1
    if space usage > 80% for 5 times within 15 cycles then alert
    if inode usage > 80% then alert

A partir de ahora, cuando el espacio usado en nuestro disco /dev/sda1 supere el 80% monit nos enviará una alerta por email.

¿No os parece útil?

Monitorizar el espacio libre en disco con monit en linux CentOS

Con monit, además de monitorizar la memoria y la CPU de nuestra máquina linux CentOS, podemos monitorizar el espacio en disco de nuestro sistema.

Lo primero es averiguar el nombre de los dispositivos que queremos monitorizar.
Para esto podemos usar el comando
df -h
que devuelve el nombre de cada dispositivo de almacenamiento y el espacio libre que queda disponible.

Ahora podemos editar el fichero de configuración de monit (/opt/monit/conf/monitrc) para añadir las siguientes líneas:
check filesystem fs01 with path /dev/mapper/VolGroup00-LogVol00
    if space usage > 80% for 5 times within 15 cycles then alert
    if inode usage > 80% then alert

A partir de ahora, cuando el espacio usado en nuestro disco /dev/mapper/VolGroup00-LogVol00 supere el 80% monit nos enviará una alerta por email.

¿No os parece útil?


2012-01-07

Monitorizar la CPU de linux Debian con monit

Después de instalar y configurar el envio de alertas de monit podemos hacer que nos avise cuando el uso de la CPU o de la memoria de nuestro sistema linux Debian sobrepase ciertos valores.

Para esto debemos modificar el fichero de configuración /etc/monit/monitrc.

La monitorización de la CPU y la memoria se realiza con:


check system nombre.del.sistema
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if cpu usage (user) > 70% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert

De esta forma monit enviará un email
  • cuando la carga promedio del sistema sea mayor de 4 durante más de 1 minuto
  • cuando la carga promedio del sistema sea mayor de 2 durante más de 5 minutos seguidos
  • cuando el uso de memoria supere el 75%
  • cuando el uso de CPU de usuario supere el 70%
  • cuando el uso de CPU de sistema supere el 30%
  • etc.
Todos estos parámetros los podeis cambiar según os convenga.

Sencillo y útil.

Monitorizar la CPU de linux CentOS con monit

Después de instalar y configurar el envio de alertas de monit podemos hacer que nos avise cuando el uso de la CPU o de la memoria de nuestro sistema linux CentOS sobrepase ciertos valores.

Para esto debemos modificar el fichero de configuración /opt/monit/conf/monitrc.

La monitorización de la CPU y la memoria se realiza con:

check system nombre.del.sistema
    if loadavg (1min) > 4 then alert
    if loadavg (5min) > 2 then alert
    if memory usage > 75% then alert
    if swap usage > 25% then alert
    if cpu usage (user) > 70% then alert
    if cpu usage (system) > 30% then alert
    if cpu usage (wait) > 20% then alert

De esta forma monit enviará un email
  • cuando la carga promedio del sistema sea mayor de 4 durante más de 1 minuto
  • cuando la carga promedio del sistema sea mayor de 2 durante más de 5 minutos seguidos
  • cuando el uso de memoria supere el 75%
  • cuando el uso de la memoria swap supere el 25%
  • cuando el uso de CPU de usuario supere el 70%
  • cuando el uso de CPU de sistema supere el 30%
  • etc.
Todos estos parámetros los podeis cambiar según os convenga.

Sencillo y útil.

Configuración básica de monit en linux Debian

Una vez tenemos instalado monit en nuestro sistema linux Debian lo tenemos que configurar con los parámetros adecuados para que nos mande las alertas por email.

La configuración de monit se realiza en el fichero /etc/monit/monitrc.

Aquí podemos añadir las siguientes líneas:


set daemon 120
que hará que monit monitorice nuestro sistema cada 120 segundos

set logfile /var/log/monit.log
para que el fichero log de monit se escriba en /var/log/monit.log

set mailserver smtp.gmail.com port 587
    username "hipolito.jimenez@nioos.com" password "mypassword"
    using tlsv1
    with timeout 30 seconds
que define el servidor de correo electronico que usaremos para enviar las notificaciones sobre nuestro sistema, en este caso usaremos gmail como nuestro relay de correo electronico.

set mail-format { from: hipolito.jimenez@nioos.com }
define el campo from del correo electronico de aviso (la persona que envía el email de aviso)

y

set alert hipolito.jimenez@nioos.com
define el destinatario de los correos electronicos con los avisos

Es conveniente rotar con logrotate el log de monit.
Para esto podemos crear el fichero /etc/logrotate.d/monit con el siguiente contenido.

/var/log/monit.log {
    weekly
    rotate 7
    missingok
    compress
    postrotate
        kill -1 `cat /var/run/monit.pid` || true
    endscript
}
 

Por último debemos modificar el fichero /etc/default/monit para cambiar el valor de la opción startup de 0 a 1.
startup=1

Ahora, para arrancar monit sólo debemos hacer el habitual:
service monit start


2012-01-05

Configuración básica de monit en linux CentOS

Una vez tenemos instalado monit en nuestro sistema linux CentOS lo tenemos que configurar con los parámetros adecuados para que nos mande las alertas por email.

La configuración de monit se realiza en el fichero /opt/monit/conf/monitrc.

Aquí podemos añadir las siguientes líneas:

set daemon  60
que hará que monit monitorice nuestro sistema cada 60 segundos

set logfile /var/log/monit.log
para que el fichero log de monit se escriba en /var/log/monit.log

set mailserver smtp.gmail.com port 587
    username "hipolito.jimenez@nioos.com" password "mypassword"
    using tlsv1
    with timeout 30 seconds
que define el servidor de correo electronico que usaremos para enviar las notificaciones sobre nuestro sistema, en este caso usaremos gmail como nuestro relay de correo electronico.

set mail-format { from: hipolito.jimenez@nioos.com }
define el campo from del correo electronico de aviso (la persona que envía el email de aviso)

y

set alert hipolito.jimenez@nioos.com
define el destinatario de los correos electronicos con los avisos

Es conveniente rotar con logrotate el log de monit.
Para esto podemos crear el fichero /etc/logrotate.d/monit con el siguiente contenido.

/var/log/monit.log {
    weekly
    rotate 7
    missingok
    compress
    postrotate
        kill -1 `cat /var/run/monit.pid` || true
    endscript
}
 

Por último debemos añadir la siguiente línea al fichero de arranque del sistema /etc/inittab
mo:2345:respawn:/opt/monit/bin/monit -Ic /opt/monit/conf/monitrc
que hará que monit se arranque con el sistema en modo respawn.

Para que la nueva configuración empiece a funcionar sin tener que reiniciar nuestro sistema debemos ejecutar el comando
telinit q


2012-01-04

Instalar monit en linux Debian

Una herramienta muy útil para monitorizar nuestro sistema linux Debian es monit.

Esta herramienta nos permitirá monitorizar el uso de la CPU, la memoria, el espacio en disco, los procesos que corren en nuestro sistema, etc, y nos avisará mediante el envío de un correo electronico ó ejecutando automáticamente alguna acción (como borrar los archivos del directorio /tmp cuando nos quede poco espacio en disco).

Para instalar monit lo único que debemos hacer es usar el comando apt-get


apt-get install monit

Más sencillo no puede ser.

2012-01-03

Instalar monit en linux CentOS

Una herramienta muy útil para monitorizar nuestro sistema linux CentOS es monit.

Esta herramienta nos permitirá monitorizar el uso de la CPU, la memoria, el espacio en disco, los procesos que corren en nuestro sistema, etc, y nos avisará mediante el envío de un correo electronico ó ejecutando automáticamente alguna acción (como borrar los archivos del directorio /tmp cuando nos quede poco espacio en disco).

Para instalar monit debemos descargarlo en nuestro sistema con el comando

wget http://mmonit.com/monit/dist/binary/5.3.2/monit-5.3.2-linux-x86.tar.gz

Lo descomprimimos con el comando
tar xvfz monit-5.3.2-linux-x86.tar.gz

El directorio resultante lo movemos al lugar seleccionado para la instalación (a mi me gusta ponerlo en /opt)
mv ./monit-5.3.2/ /opt/

Por comodidad es conveniente crear un link simbólico para acceder a los ejecutables y la configuración de una forma más comoda.
ln -s /opt/monit-5.3.2/ /opt/monit

Como veis se trata de una instalación sencilla.