Tu querrás estar aquí

Read more →

Case study: Optimizando mi web server en linux pt. 3

Luego de revisar las variables posibles de pobre desempeño a nivel más bajo, me acerco a la optimización del software. Vuelvo a reiterar que «Your mileage may (and will) vary», debido a que mis requerimientos son muy específicos respecto al software servido.

Ver también:

Ahora, Apache

Tras mejorar las variables más comunes de posibles cuellos de botella que sean en parte culpables por el rendimiento, llegamos al servidor mismo.

Elección de MPM

Como ya antes fue enunciado, Apache tiene principalmente tres modelos de funcionamiento, siendo mayoritariamente utilizados los modelos de Prefork y Worker. Prefork es tal cual el modelo antiguo de apache 1.3, es decir un proceso por cliente y sin hilos. Worker es un modelo de multihilos en donde algunos procesos manejan distintos clientes mediante diferentes hebras. Debido al costo de cambio de contexto de los procesos en prefork, worker desde ese punto de vista provee un mayor desempeño. El problema asoma cuando utilizamos software que no tenga un suficientemente elaborado sistema de manejo de seguridad de memoria en el ambito de los hilos (o «Thread Safe»), como es el problema de PHP y su TSRM.

Read more →

Case study: Optimizando mi web server en linux pt. 2

Ya me voy acercando y una vez en el servidor, ¿qué más puede provocar cuellos de botella?. El acceso a los datos.

Ver también:

Sistema de archivos

Tras años de jugar en cuanto sistema de archivo existente en Linux, más que benchmarks y anotaciones sagradas tengo experiencias, sesgadas probablemente, pero no menores. Manteniendo un servidor web, donde en promedio cada archivo servido no tiene mas de 100KB de tamaño en disco, es necesario un sistema de archivos que sea eficiente (y estable) con archivos pequeños.

Mi primera tendencia fue a utilizar XFS, pero pesar de su solidez y rapidez, su comportamiento cuando el sistema de archivos se hace cada vez mas granulado comienza a dar problemas, búsquedas en directorios demasiado grandes se hacen cada vez más lentos. ReiserFS entonces fue mi segunda intención, pero tras varios accidentes (si, ya dije que probablemente sesgados) en donde terminé con sistemas inconsistentes, no graves estadísticamente hablando, pero que se corrompa un httpd.conf con cientos de vhosts no es ninguna gracia (como alguna vez me ocurrió), finalmente descarté ReiserFS tal vez tan solo para tener la conciencia limpia, ya que continúo utilizandolo en mis desktop (al igual que los «filmservers» con XFS).

Read more →

Case study: Optimizando mi web server en linux pt. 1

Este no pretende ser un manual de configuración y optimización específico para tu aplicación web, sino más bien un caso de estudio ajustado a mis necesidades específicas. Puedes tomar en cuenta el análisis hecho para sacar tus propias conclusiones. Estará compuesto de varios episodios en donde se toman en cuenta los diversos caminos a tomar.

Reitero esto ya que de seguro «tu kilometraje puede variar».

Ver también:

La idea

Tal vez uno de los servicios de mayor uso y expansión a traves de internet sea la web. Y en este ámbito quien se lleva la torta es Apache, quien según Netcraft maneja alrededor del 67% de los sitios web disponibles en la red.

Un dato aparte es que Apache ha tenido durante el 2006 una pequeña baja en su supremacía en favor de otras soluciones web, probablemente por las mismas razones que estoy escribiendo: la busqueda de la mejor performance.

Hay bastantes otros servidores web menos usados pero que logran mayores performances para contenidos particulares. Lighhtpd y su actual relación con la moda Web 2.0 y Ruby on Rails, y servidores principalmente orientados a servir óptimamente contenido estático como Thttpd, Boa (quien sirve el contenido estático de Slashdot, algo no menor) y Tux. Y por último pero no menor, la aparición de el (de esperar) completo reemplazo de Apache, Cherokee, del español Alvaro López.

Es claro entonces el interés por lograr la mayor performance posible, reuniendo el conjunto de tecnologías que lo permita sin ya existir el apego casi religioso a la predilección por Apache.

Read more →

WordPress: K2 en español

Soy de los que suele usar su computador en Inglés. ¿Por que?, tal vez una vieja costumbre de los tiempos en que las traducciones del software en Linux eran horribles. Son nuevos tiempos y las traducciones han mejorado y los sistemas de traducción de igual manera. PHP con gettext es una buena forma de traducir aplicaciones web, en donde WordPress no es la excepción. Hasta ayer solía bajar una copia de K2, «localizarla» (agregarle funciones __() y _e()), agregar los strings al es_ES.
Read more →

Throttling Apache

Hace un par de días, Andrea publicó unos videos de su colección de Plan Z para compartirlos con unos amigos de la Universidad que eran tan fanáticos como ella de Peirano y compañía. Pues como era de esperarse en este mundo global aparecieron «amigos» por todas partes luego de ser publicada su dirección en los foros de «El Antro». Esto provocó de inmediato un «efecto antro» (efecto slashdot, pero con download accelerator debajo del brazo) en que las malas costumbres de algunos comenzaron a afectar el buen cumplimiento de apache.
Read more →

Desarrollando … get Firefox!

Desde hace unos cuantos días que estoy pegado rehaciendo algunos sitios web (todos, menos el mío), como el de Andrea, otros de uso interno y un proyecto de Planeta Blogs decente. El problema es con la compatibilidad entre navegadores. Como en Linux solo tengo instalado navegadores basados en Gecko y con mis CSS Cheatsheet al lado juraba que todo iba a ser tan facil. Abrí mi vim (a ratos un emacs, gracias a Pedro) y vamos llenando cajones y aplicando estilos, todo muy bien hasta ahí.
Read more →

Mira Mamá, estoy en Google Talk

Hace unos momentos Google develó su Google Talk, su cliente Jabber de mensajería instantánea. Con Pedro ya estuvimos probándolo, tanto en el cliente para Windows como Gaim en Linux sin ningún problema. Smash tiene unos tips actualizados para conectarse a la red de Jabber de Google con Gaim. Protocolo: Jabber Nombre de usuario: tu cuenta gmail (lo que esta antes de la @) Servidor: gmail.com Recurso: Lo que se te antoje
Read more →

Apache2: No space left on device?

Desde hace algun tiempo el servidor web en donde mantengo mi sitio entre otros, ha tenido comportamientos algo erraticos y luego de algunos días a pesar de los procesos estar arriba, simplemente no responde. La única solución era matar los procesos (que a pesar de no ser zombies, no respondian ni siquiera a apache2ctl) y volver a iniciar el servicio. Mi primer sospechoso fue el wiki de Gnome, basado en Moinmoin.
Read more →

Teletón applet!

Read more →

Cagazus habemus

Read more →

Firefox 1.0

Read more →

Lunes en el Conasol

El día lunes debimos levantarnos alrededor de las 7:30 tras solo un par de horas de sueño para acudir al congreso que se efectuaría a solo una cuadra del hotel, en la casa central de la Universidad de Talca. Este día estaría marcado por una tragedia. En la mañana, Federico debía comunicarse con Ximian en Boston cuando le entregaron la fatal noticia del fallecimiento de Chema Celorio, por lo que el ánimo de los primates se explicaba claramente, no sería el de los mejores durante el día.
Read more →

A una semana: Domingo en el Conasol

Ha pasado ya una semana y nada he escrito sobre mi paso por Talca. Antes que la frágil memoria me juegue una mala pasada, comenzaré a plasmar en texto mis comentarios al respecto.

Camino al CONASOL junto a Mario, Juan Andrés y Basilio. Corría el día sábado 8 cuando Mario (ReX) anuncia que iba en auto a Talca, pero unos de sus acompañantes se habían retirado del paseo, por lo que necesitaba más pasajeros.

Read more →

Mailman otra vez

Una vez mas mailman me jugo una mala pasada. Durante una reciente actualización del paquete de debian, la 2.1.1, por una parte el proceso de actualización dejo pasar unos correos encolados como spam y por otra el servicio web, mas especialmente el servicio de archivo no muestra nada, solo links rotos a pipermail. Asi que manos a la obra para poder dejar corriendo el servicio. El error esta en Archiver.py y el parche a lo que le meti mano (esta feo, pero funciona) esta en :
Read more →

Gnome Chile en IPV6

Read more →