thinkClear » debian

Últimamente, me estoy interiorizando bastante en temas de eficiencia en transacciones web y quería comentarles que estuve haciendo pruebas en un servidor que tengo en casa con varias aplicaciones, pero que por sobre todo, es un servidor de aprendizaje (aconsejo que cualquiera que tenga una máquina vieja, digasé Pentium 1, pentium 2, o partes de máquinas de amigos que no les sirvan, se armen una y hagan su propio server). Eso es lo que hice yo :). Y funciona como servidor web con soporte php, python, servidor svn, servidor jabber, mysql, etc. Obvio que la usa muy poca gente…..pero sirve perfectamente.

En una de estas pruebas, me dispuse a probar un servidor web llamado lighttpd. Este servidor se está haciendo bastante conocido y está siendo utilizado por sitios como youtube, algunos servers de la wikipedia, etc.

Realmente, noté que este servidor web es MUY rápido, sobre todo en comparación con apache2. En la página de este, podemos ver un benchmark que lo demuestra. Si no confian mucho en estas estadísticas, por estar en la pagina de lighttpd, pueden buscar por internet, hay miles.

En comparación con apache2, lighttpd ofrece muchas menos características.

Otra cosa (además del servidor web) que me parece muy importante, tiene que ver ya con PHP. Debido a que PHP es un lenguaje de compilación dinámica, cada script es compilado y ejecutado en tiempo de ejecución. Lo que hace que no se guarde el script compilado y este se regenere cada vez que se ejecute.
Debido a esto, existen aceleradores PHP que lo que hacen es compilar los script y cachearlos. Este tipo de aceleración puede hacer que las aplicaciones que se realicen utilizando PHP, se ejecuten hasta un 50% más rápido, lo que obliga a utilizar cacheadores PHP en sistemas en producción que necesiten realmente una respuesta rápida.

Uno se podría preguntar:
Si esto es así, porque no estan los aceleradores en el core de PHP?
La respuesta es muy facil. Zend, la empresa que brinda PHP tiene su propio “Optimizer” que por supuesto, hay que pagarlo.
En PHP6, va a venir por defecto APC, dentro del core de PHP.

Yo en mi caso probé con eaccelerator.
Y la verdad es que noté otra gran mejora en el rendimiento.

Instalación del source de eaccelerator: http://eaccelerator.net/wiki/InstallFromSource

Página principal de lighttpd: http://lighttpd.net

Para los desarrollos internos en thinkClear, instalamos un servidor de desarrollo. Me gustaría compartir la experiencia por la que pasamos:

Para la instalación del server elegimos la última debian estable o “etch”. Debido a que en la oficina tenemos una buena conexión a internet y realmente queriamos instalar solo lo necesario.

Esta es la imagen que utilizamos :

http://cdimage.debian.org/debian-cd/4.0_r1/amd64/iso-cd/debian-40r1-amd64-netinst.iso

Luego de grabar la imagen, empezamos con la instalación.

Al poco de empezar, debian, no pudo reconocer la placa de red (una placa del mother ASUS P5GC-MX) que es fundamental para el proceso de instalación!. Por lo que tuvimos que completar la instalación sin el soporte de red, para luego instalarla.

Luego de haber instalado el sistema (mucho más que mínimo, ya que ni siquiera se había actualizado por internet), nos dispusimos a instalar la placa de red.

Por suerte, los drivers de la placa, no solo estaban en el CD del mother, sino que estos eran libres, con licencia GPL, lo que nos permitió instalarlos facilmente.

Estos son los pasos que seguimos:

utilizando otra computadora, bajamos estos archivos de los servers de debian que nos sirvieron para compilar los fuentes y los grabamos a un diskette:

para montar la lectora hicimos

mount /dev/fd0

luego fuimos a /media/floppy e instalamos los siquientes paquetes q bajamos

gcc_4.1.1-15_amd64.deb

make_3.81-2_amd64.deb

con el comando dpkg -i ‘nombre de archivo’

Luego, para instalar los fuentes de la placa de red, montamos el cd donde venían los drivers de esta manera:

mount /dev/cdrom

fuimos al directorio donde estaban los sources, en este caso , /media/cdrom0/LinuxDrivers/Lan/Attansic/AtL2Linux_v0.2.40.0/src

y ejecutamos el siguiente comando:

make install

para instalar los fuentes. El binario producido estará en

/lib/modules/<KERNEL VERSION>/kernel/drivers/net/atl2/atl2.ko

Ejecutamos

insmod atl2

Para instalar el módulo recien compilado.

Y por último le asignamos una ip a la placa

ifconfig ethX <IP_address> (donde X es la interfaz de red)

Luego buscamos algunos sources (algunos que encontramos)

deb http://debian.mur.at/debian/ stable main
deb-src http://debian.mur.at/debian/ stable main
deb http://security.debian.org/ stable/updates main
y los agregamos al archivo /etc/apt/sources.list

ejecutamos apt-get update

y ya podemos instalar lo que querramos en nuestro debian correctamente :)