Sobrecarga de servidores

General, Software

No sé si se está hablando mucho de esto en la blogosfera (últimamente me estoy volcanco con otros proyectos) pero el hecho de que Mini-d haya estado caido me ha hecho recordar una idea que tuve hace tiempo.

Parece ser que una de las razones por las que el proveedor que utilizaba le cortó el servicio de http al servidor fue porque en un sólo día consumió 400 minutos de CPU (más de 6 horas, esto es una burrada, el emule consume unos 30-40 minutos al día en mi Athlon 2000+).

¿Por qué pasa esto? Realmente php está bien para hacer cálculos, consultas, etc… Pero tengo la impresión de que los algunos programas escritos en php son demasiado complejos para el propio php; vamos, que carga demasiado la máquina para lo que hace. Un lenguaje interpretado en el que se importan un montón más de 8 ficheros de los que uno hace consultas a la base de datos, otro lleva la internacionalización, otro las fechas… Es normal que el procesador se vuelva loco.

Cuando programamos en php intentamos utilizar las técnicas de modularidad que tan bien funcionan en lenguajes compilados o pseudocompilados como C, Java, …

¿Alternativas? La que se me ocurrió fue que, en cada cambio que se haga en la web de forma interna (en el caso de WordPress añadir una categoría, un artículo, recibir un comentario, etc…) se creara un archivo estático que tuviera links a las páginas dinámicas. La mayoría de la gente no pasa de la primera página así que el procesador sólo tendría que leer el xhtml del disco y mandárselo al cliente. Otra variante sería que la página principal fuera más estática de lo que es ahora, por ejemplo que todo fuera estático menos el número de comentarios de cada entrada, para no tener que generar el estático con cada comentario.