Publicado el Viernes 13 de Abril del 2007 @ 6:29 por Armonth.
Hoy parece ser el día de los “sucesos relacionados al ancho de banda”, primero he leído un artículo de Max Glaser en que habla sobre el ahorro en ancho de banda y trata una parte que yo anteriormente no he mencionado: identificar las mayores fuentes de consumo.
En resumen habla de usar alguna herramienta para identificar donde se va el consumo (HTML, imágenes, ficheros, etcétera) para actual en consecuencia, luego usar compresión gzip/zlib, el artículo también incluye una imagen con una gráfica del ahorro que eso supone.
Otra ventaja de comprimir las páginas webs bajo demanda es que lo que aumenta de consumo de CPU por un lado puede reducirse relativamente (según que casos) por el otro. Si tenemos muchas visitas el mantener tantos hilos del Apache abiertos enviando puede suponer más gasto de CPU y al enviarlas más rápidamente los picos pueden ser menos escarpados.
Otra solución en ese punto es tener dos versiones de la página a enviar, una sin comprimir y otra comprimida. Luego se envía la que más le interese al navegador (”negociación de contenidos”). Eso precisamente es lo que me comento Ricardo Galli en una charla de WP-Cache cuando le pregunte si había alguna manera de usar cache + gzip, aunque aún estoy esperando ver si se pone a ello xD
También hoy, he conocido otro caso de hotlinking peligroso (en dicho enlace comento como deshabilitar el hotlinking completamente), algo aparentemente sin importancia: un blog tiene en su servidor una imagen, la cual usan como avatar en un foro muy conocido y pum: 50.000 visitas de golpe en menos de 24 horas y para no aplicar la medida a todos ni usar listas blancas hemos hecho una ligera modificación:
RewriteEngine On
RewriteCond %{HTTP_REFERER} foro-a-filtrar\.com
RewriteRule \.(jpe?g|gif|bmp|png)$ hotlinking.gif [L]
Con todo ello, ahí va un pequeño listado de artículos publicados en SigT sobre ahorro de ancho de banda (alguno incluso tiene más de un año y tiene total vigencia):
La realidad es que existen tantas cosas que se pueden tocar, optimizar y afinar empezando por el script (su programación…), el uso que hacen del mismo (quien y cómo accede…), para bajar al software servidor (apache, php, mysql…) y aún más al sistema operativo (y sobretodo cómo de optimizado están cosas como el kernel o si has compilado todo lo anterior para dejarlo a tus necesidades) que a menudo se hace difícil de creer que llegue el momento de decir “ya no haya nada más que raspar” de un servidor y haya que mudarse a otro.
Justamente estoy con problemas de éste tipo en mi blog… en realidad es “Consumo excesivo de CPU”…
Eso mezclado con un MUY MAL servidor, con un PEOR TODAVÍA servicio tecnico puede ser letal! :P
Saludos!
@Milton!: Si tienes problemas con el consumo de la CPU podrías probar varias cosas (siempre y cuando no estés usando un hosting compartido normal y corriente):
1º Desazte de Apache y mete lighttpd, tengo visto servidor que estaban perpetuamente al uso del 100% de sus recursos bajar de golpa al 40% de uso de CPU y pasar de tener que usar una SWAP enorme a tirar solo de la RAM.
2º Si utilizas MySQL activa la caché del mismo (la pena es que no recuerdo ahora mismo el nombre del módulo que se encarga de hacer eso).
3º Arranca tu página el local con un debugger y analiza los consumos de CPU de cada cosa, así sabrás dónde tienes que realizar cambios en el código de la página.
Juas… mira, un clásico (vaaale, solo hace seis años):
http://bulma.net/body.phtml?nIdNoticia=632
Ricardo Galli mandó a la LKML un link a un artículo mío que estaba en la BULMA original con el código PHP (versión 3, creo) sin optimizar, con PostgreSQL también sin afinar y encima me parece que en un servidor provisional, Pentium II ó III a unos 500MHz que servia otras cosas. Lo de los cien mil hits en dos horas tuvo su emoción X’-DDD
Luego se optimizó y actualizó el PHP, se pasó a MySQL y se cambió el hard a dual Pentium III a 1GHz, y ahora va tan ancho… de hecho esa configuració ha aguantado un par de slashdotazos por lo menos sin mayores problemas :-)
Para optimizar el tamaño de las imágenes y reducir así la transferencia yo utilizo las herramientas que en este artículo: Optimizar el tamaño de imágenes para web