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.