Gravatar de Armonth

Recopilación de artículos sobre ahorro de ancho de banda

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

  • Evolución de un sitio exitoso: un texto que analiza las “fases” más habituales por las que pasa un sitio web, los problemas que surgen y las soluciones más habituales a realizar. Pura teoría, ni un solo ejemplo.
  • CSS y ahorro de ancho de banda. Ejemplos de shorthand (una manera estándar de resumir las reglas CSS) para ahorrar unos pocos bytes, herramientas que intentan optimizar de forma automática y el enviar CSS comprimido prestando especial atención a ciertos navegadores (los que pensáis en IE: ¡bingo!).
  • 5 consejos para ahorrar ancho de banda. GZIP, optimizar contenidos, hotlinking, externalizar información…
  • Explicación de la cabecera If-Modified-Since. Muy importante, sobretodo en el caso de los feeds, todos los feeds deberían usar esa cabecera ya que supone un ahorro bestial, los lectores de feeds serios (y no son pocos) se benefician de ello.
  • Acabar con el hotlinking pero con excepciones. El tema del hotlinking bien merece un recopilatorio, algunos “cierran el grifo” de golpe, luego podemos usar listas negras para cerrárselo sólo a quienes abusen o usar listas blancas para abrirlo a quien convenga.

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.

5 Comentarios (feed)

  1. Gravatar de Milton! Milton! nos comenta:

    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!

    Viernes, 13 de Abril/2007 @ 8:04

  2. Gravatar de Rarok Rarok nos comenta:

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

    Viernes, 13 de Abril/2007 @ 8:22

  3. Gravatar de guillem guillem nos comenta:

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

    Viernes, 13 de Abril/2007 @ 15:35

  4. Gravatar de Armonth Armonth nos comenta:

    Ya lo había leído, y sí todo un clásico de Bulma junto al desarrollo web extremo… :)

    Viernes, 13 de Abril/2007 @ 19:25

  5. Gravatar de Juan Juan nos comenta:

    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

    Domingo, 22 de Abril/2007 @ 21:25

No seas tímido, da tu opinión

Sé respetuoso con los demás, la diferencia de opiniones enriquece la discusión, los comentarios bajo ciertas circunstancias pueden ser moderados y requerir aprobación.