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.

Continue reading

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).

Continue reading

¿No usemos el tag?

Diariamente en el viaje de retorno a casa desde la Universidad suelo escuchar «Será noticia mañana» con Juan Manuel Astorga y Mauricio Bustamante en la Radio Infinita.

Tras la discusión del día al respecto del incremento de los cobros con el bendito tag y ante un supuesto llamado a boicotear el uso de las autopistas concesionadas ante el cual Astorga argumentaba en contra de la factibilidad de dicho boicot (con tacos de kilómetros y kilómetros en Kennedy, ¿quien no rompería su «promesa» con tal de llegar una hora antes a casa?)

Bustamante remataba: «la única solución de boicot es que salgamos todos un día sin tag, dejando un descalabro de proporciones en la entrega de de partes a los cinco mil automovilistas por hora que utilizan las autopistas». Ante lo cual Astorga le replicaba «cuidado Mauricio, ¿dónde esta tu responsabilidad como comunicador social?».

La mejor idea de la semana? >:-)