Spiga

Instalando mod_top en Centos 5.x

February 16, 09 by Pedro Hernández

En casa y en la agencia donde trabajo usamos como sistema operativo para los servidores Centos y como desde hace un tiempo vengo viendo el tema de monitorizar para mejorar la performance de las aplicaciones que desarrollo me decidí a probar mod_top. Esta herramienta corriendo en centos es gracias al soporte de Red Hat Enterprise Linux (RHEL) 4 o 5.

De momento mod_top solo da soporte a las siguiente versiones de PHP: 4.4x, 5.1.x, 5.2.x. Aunque piensan hacerlo además para: Perl, Ruby, Python, mySQL, Postgres, Apache1+2.

Pues bien ¿y qué se pude hacer con esta herramienta?, como ellos lo definen:

  • Localizar cuellos de botella en las aplicaciones.
  • Solucionar problemas gran consumo de memoria.
  • Comprender el uso de la CPU con carga.
  • Diagnosticar las causas de lentitud o la utilización de los recursos.
  • Descubrir las dependencias de la base de datos.
  • Impresionar a sus amigos con su eficiente código escalable.

Instalando mod_top

Para comenzar necesitamos descargar la versión compatible con nuestro PHP.  En mi caso descargué la versión 0.5 (la última a la fecha 2008/02/14) con soporte para PHP  v5.2.x y arquitectura i686. Yo suelo descargar las librerías aquí:

# cd /usr/local/src

Descomprimimos y guardamos su contenido en /opt/mod_top:

# mkdir /opt/mod_top

En este caso el archivo es mod-top-0.5-php52-i686.tar.gz:

# tar -xvzf mod-top-0.5-php52-i686.tar.gz -C /opt/mod_top

Terminado esto toca instalar las librerías Lamp1701 como muestra la documentación…

lib/liblamp1701read.so      - lamp1701 libraries
    liblamp1701utils.so
    liblamp1701write.so
    liblamp1701read.so.0    - shared object name links
    liblamp1701utils.so.0
    liblamp1701write.so.0

… en la carpeta /usr/lib o /usr/lib64 si fuese el caso:

# ln -s /opt/mod_top/mod-top-0.5-php52-i686/lib/liblamp1701*.0 /usr/lib

Instalando la extensión en PHP

Se crea un enlace simbólico del archivo php/lamp1701.so (que en este caso está en /opt/mod_top/mod-top-0.5-php52-i686/) en la carpeta de módulos de PHP (en este caso /usr/lib/php/modules):

# ln -s /opt/mod_top/mod-top-0.5-php52-i686/php/lamp1701.so /usr/lib/php/modules

Ahora a activar la extensión en el php.ini:

# cd /etc/php.d/
# vim mod_top.ini

Dentro del archivo agregamos:

; Enable lamp1701 extension module
extension=lamp1701.so

Ejecutando mod_top

Lo primero es iniciar lamp1701d que se encuentra en sbin/lamp1701d:

# cd /opt/mod_top/mod-top-0.5-php52-i686/sbin
# ./lamp1701d

Ahora ejecutar mod_top:

# cd /opt/mod_top/mod-top-0.5-php52-i686/bin
# ./mod_top -s 127.0.0.1

Una vez ejecutandose este proceso no podremos usar más esta terminal, si no únicamente para monitorizar.

En otra terminal

Verificamos que el proceso mod_top se esté ejecutando:

# ps aux | grep -i mod_top
root      6956  0.2  0.3   4044  2924 tty1     S+   10:43   0:00 ./mod_top -s 127.0.0.1
root      6970  0.0  0.0   3976   744 pts/0    R+   10:44   0:00 grep -i mod_top

Finalmente toca iniciar o reiniciar apache:

# apachectl start

Ahora ejecuta algún proyecto que tengas en php y comenzaras a ver los resultados como se muestra aquí, sobre todo resulta interesante cuando lo usas con symfony.

Saludos.

Add your comment

One response for this post

  1. Javier Eguiluz Says:

    Gracias por la información Pedro, parece una herramienta muy interesante.

    Estaría muy bien si en algún artículo próximo nos puedes contar algunas de las mejoras que habéis conseguido en el rendimiento de las aplicaciones Symfony.

Leave a Reply