Instalando mod_top en Centos 5.x
February 16, 09 by Pedro HernándezEn 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.





Javier Eguiluz Says: 22.02.09 at 5:02 pm
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.