Instalar XCache en CentOS 5

Breves instrucciones para compilar y instalar Xcache en Centos 5. No tiene mayor dificultad.

# wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
# tar -zxf xcache-1.2.2.tar.gz
# cd xcache
# phpize
# ./configure –enable-xcache
# make
# su
# make install

Instala las extesiones compartidas de php : /usr/lib/php/modules

# cat xcache.ini >> /etc/php.ini

Editamos php.ini para instalar Xcache como extension

# joe /etc/php.ini

zend_extension = /usr/lib/php/modules/xcache.so

La configuración del xcache está explicada en comentarios en el propio php.ini, pero hay cosas relevantes como el xcache.count, relativo al número de procesadores de nuestro sistema. Averiguamos el número de procesadores y luego editamos el php.ini

# cat /proc/cpuinfo |grep -c processor
xcache.count = 4

Las demás variables se pueden configurar fácilmente leyendo la documentación. Ahora podemos crear un archivo php con la función phpinfo ( ) y moverlo a nuestro directorio root para comprobar que Xcache funciona correctamente. No olvidemos reiniciar Apache!

# /etc/init.d/httpd restart

Instalar el Admin

Para instalar el admin primero creamos un fichero php como el siguiente para obtener el password encriptado en md5

echo md5("password");

Copiamos el resultado en php.ini, en la variable xcache.admin.pass

xcache.admin.pass = "password_en_md5"

Ahora copiamos el directorio web de Xcache a nuestro document root de apache


# cp -R admin/* /var/www/midominio.com/admin/.

Reiniciamos Apache. Accedemos al admin, introduciendo user y password.

Sobre el Error Segmentation Fault

Algo que me sucedió en la instalación de Xcache en Centos 5. Al comprobar los logs de Apache comprobé que había numerosos errores de Segmentation Fault.

# php -v
Segmentation fault

# cat /var/log/httpd/error_log
[Thu Oct 02 13:43:39 2008] [notice] child pid 15978 exit signal Segmentation fault (11)
[Thu Oct 02 13:43:42 2008] [notice] child pid 15979 exit signal Segmentation fault (11)
[Thu Oct 02 13:43:50 2008] [notice] child pid 15980 exit signal Segmentation fault (11)
[Thu Oct 02 13:44:08 2008] [notice] child pid 15981 exit signal Segmentation fault (11)
[Thu Oct 02 13:44:12 2008] [notice] child pid 15982 exit signal Segmentation fault (11)
[Thu Oct 02 13:44:33 2008] [notice] child pid 15983 exit signal Segmentation fault (11)

Para evitarlo hacemos lo siguiente


# rm /dev/zero
# mknod /dev/zero char 1 5
# /etc/init.d/httpd restart

Otro problema relativo. Aunque creemos el fichero /dev/zero, por una limitación (no se si de php.ini o el propio kernel) puede que el valor de cache que asignamos a xcache.size es superior a lo que puede guardar y eso provoca el siguiente error:

xcache /dev/zero: No space left on device

Para arreglar, hemos de reducir el valor asignado a xcache.size, por ejemplo empezando por 8M y reiniciando apache. No deberíamos ver más ese error ni Segmentation Faults en el apache. Y si los hay, deberían ser por otro motivo que no fuera Xcache.

Desinstalar SiteBuilder en Plesk con CentOS

Hace unos días me encontre problemas con el Sitebuilder que al actualizar el panel control plesk de 8.4 a 8.6.

Razón de más para eliminarlo para evitar que pueda darnos algún problema o que este siempre corriendo en nuestro servidor por pocos recursos que consuma.

Para desinstalarlo solo tenemos que utilizar YUM:

  1. Ejecutar: yum remove sitebuilder
  2. Ejecutar: yum remove php5sb
  3. Ya tenemos el sitebuilder desinstalado.

Para más información consultar “Uninstall SiteBuilder

Monitoriza tu servidor con Glance

glances

Al igual que conocéis Htop, en está ocasión vamos a ver que es y como se instala Glance.

Glance es una herramienta de monitoreo basado en CLI curses para GNU/Linux y BSD OS. Glance es mucho más completo que el ultra conocido HTOP.
Glances utiliza la librería PsUtil para obtener la información del sistema. Está desarrollada en Phyton.

glance-screenshot

Instalación

Pre-requisitos:

  • Python 2.6+ (no probado con Python 3+)
  • build-essential (para instalación vía Pypi y setup.py)
  • python-dev (para instalación vía Pypi)
  • python-setuptools (para instalación vía setup.py)
  • python-psutil 0.4.1+ (reemplaza las librería anteriores libstatgrab’s lib)
  • python-jinja2 2.0+ (opcional para exportar a HTML)
  • pysensors (librería Python para estadísticas de sensores)

Desde administrador de paquetes (la manera mas fácil)

Paquetes existen para Debian (SID), Arch, Fedora, RedHat, FreeBSD

Desde PyPi (forma facil y multiplatforma)

PyPi es una administrador de paquetes no oficial.

Primero necesitas instalar pypi en tu sistema. Por ejemplo en Ubuntu/Xubuntu:


sudo apt-get install python-pip build-essential python-dev

Luego, instalar la ultima version de Glance:


sudo pip install Glances

Esta instalación es básica para servidores y/o equipos con sistemas Debian/Ubuntu. Para instalar Glance en servidores basados en RHEL/Centos hay que instalar repositorios EPEL y después hacer


yum -y install python-pip

Ejecucion de Glance

En modo Standalone

Si quiere monitorear la maquina local, ejecuta:

glance

En modo cliente/servidor

Si quieres monitorear un maquina remotamente (llamado servidor) desde otra (llamada cliente)

Ejecuta este comando en el servidor:


server$ glances -s

Y este en el cliente:


client$ glances -c @server

Donde @server es la IP del servidor o el nombre del servidor

Glance utiliza el esquema de servicio XML/RPC y puede ser usado por otro software cliente

Guía de usuario

Por defecto las estadísticas se actualizan cada segundo, para cambiar esto puede usar la opción -t. Por ejemplo para definir la actualización cada 5 segundos seria:

glances -t 5

Las estadisticas importantes estan coloreadas como:

  • VERDE: conteo de estadísticas es “OK”
  • AZUL: conteo de estadistica es “CAREFUL” (Cuidado)
  • MAGENTA: conteo de estadistica es “WARNING” (Alarma)
  • ROJO: conteo de estadística es “CRITICAL” (Critico)

Cuando Glance esta en ejecucion puedes presionar las siguiente teclas:

‘h’ muestra el mensaje de ayuda en pantalla con las teclas que puedes utilizar

‘a’ definir el método automático. Los procesos son ordenados automaticamente

Si CPU > 70%, ordena los procesos por consumo de CPU

Si MEM > 70%, orden los procesos por consumo de tamaño de memoria

‘b’ intercambia entre bit/s o byte/s para la E/S de red

‘c’ ordena la lista de procesos por consumo de CPU

‘d’ habilita/deshabilita las estadísticas de I/O en disco

‘e’ habilita el modulo de sensores (la librería PySensors es necesaria; Solo Linux)

‘f’ hablita/deshabilita las estadísticas del sistema de archivos

‘l’ habilita/deshabilita el logeo de la aplicación.

‘m’ ordena la lista de procesos por consumo de memoria

‘n’ habilita/deshabilita las estadisticas de la interfaz de red

‘p’ ordena por el nombre del proceso

‘w’ elimina los WARNING finalizados (que ya no estan) del archivo log

’1′ intercambia entre las estadisticas globales del CPU y las estadisticas particulares por cada CORE

‘q’ salir de la aplicacion

En modo servidor, puede definir la IP donde escuchara las peticiones (-B DIRECCION) y el puerto (-p PUERTO)

En el modo cliente, puede definir el puerto del servidor con -p PUERTO

La IP de escucha por defecto es 0.0.0.0, es decir, en todas las que tenga el equipo.

Si teneis alguna pregunta sobre Glance, decirlos en los comentarios!! Be water my friends!!

Instalar Varnish en CentOS 5 y CentOS 6

Varnish es un acelerador para HTTP que está causando furor en el mundo del hosting y en general en el mundo Linux. Varnish aparece como alternativa al poderoso Nginx, que durante mucho tiempo fue el rey en cuanto a la optimización a nivel de cache, proxy y balanceo de carga para los servicios web. Varnish además de hacer todo lo que hace Nginx con mejor rendimiento, también tiene algunas característiacs destacables, como por ejemplo:

  • Lenguaje propio VLC, que permite al usuario manipular varnish a su gusto.
  • Concebido desde el comiento para utilizarse en sistemas 64 bits
  • Soporte parcial de ESI
  • No necesita reiniciar para tomar los cambios de configuraciones

La forma de funcionar de Varnish es muy sencilla, pero a la vez efectiva:  se guarda la información de cada request en la memoria virtual y el S.O es quien decide qué es guardado y que es paginado al disco duro. Esto es muy útil para que no se cachee información mientras se mueve al disco duro por otras aplicaciones.

varnish

Cada request desde el cliente genera hilos independientes y una vez se llega al límite de hilos, las nuevas conexiones son puestas en cola y recién a medida que se liberan otras, estas nuevas comienzan a despacharse. Sólo si la cola de peticiones pendientes alcanza un gran límite recién serán descartadas.

Un escenario ideal es tener apache, lighttpd o nginx en el puerto 8080 y Varnish en el 80 para actuar como proxy delante del webserver. En fin, ahora que ya tenemos una ideal general de como funciona, vamos a la parte divertida:

Para instalar Varnish vamos a seguir los siguientes pasos:

Si bien este repo es para RHEL/CentOS 5.x, funciona perfecto en la versión CentOS 6.x.

Instalamos el repositorio:

 rpm --nosignature -i http://repo.varnish-cache.org/redhat/varnish-3.0/el5/noarch/varnish-release-3.0-1.noarch.rpm 

Instalamos Varnish

yum install varnish 

Lo configuramos para iniciar al arranque del sistema:

chkconfig varnish on 

Iniciamos Varnish

service varnish start 

Para comprobar si está funcionando, basta con tipear:

service varnish status

Finalmente, resta configurar el servicio desde dos archivos clave:

/etc/sysconfig/varnish, para configurar el servicio a nivel general

/etc/varnish/default.vlc, para configurar las directivas propias que afectarán a cada sitio web.

 

Más información en la web oficial de Varnish