Búsqueda

miércoles, octubre 05, 2005

Servidores colapsados

Durante y tras el eclipse del pasado lunes, han sido muchos los que se han quejado de sitios web en las que se realizaba un seguimiento del mismo y terminaron colapsándose. Y no eran sitios de particulares, sino de entidades como el Planetario de Madrid o el Ministerio de Fomento. El punto común en casi todas las quejas ha sido el insuficiente ancho de banda disponible, culpando bien a los responsables del sitio web en cuestión, bien a la insuficiente infraestructura de comunicaciones existente en nuestro país.

Pero el ancho de banda no tiene nada que ver con el colapso de un servidor web. Y si existe una relación, es más bien al contrario: cuanto mayor ancho de banda, más fácil es colapsar un servidor.

¿Qué es el ancho de banda ese del que todo el mundo habla? Pues en el mundo digital, básicamente es la máxima velocidad de transmisión soportada, y se mide en bps (bits por segundo) o cualquier múltiplo de esta unidad, como Kbps (Kilobits por segundo) o Mbps (Megabits por segundo). A modo de ejemplo, una conexión mediante un módem de toda la vida, suele tener una ancho de banda de 54 Kbps. Una conexión ADSL suele tener entre 256 Kbps y 4 Mbps. Una conexión ADSL2+, puede alcanzar los 24 Mbps.

Pero no perdamos de vista que siempre estamos hablando de velocidad máxima. Una persona puede tener una flamante conexión ADSL de 4 Mbps y estar descargándose un fichero a una velocidad muchísimo menor. ¿Por qué? Bueno, todos recordaremos del colegio los tres elementos básicos de toda forma de comunicación: emisor, medio y receptor. El ancho de banda sólo se refiere a la máxima velocidad permitida por el medio (en este caso, la red). El emisor (el servidor web) y el receptor (nuestro PC) deben poder operar a esa velocidad.

El receptor nunca debería ser un problema (a menos que usemos un PC de más de 10 años, que simplemente no pueda tratar los datos a la velocidad que los recibe). Pero el emisor es otro cantar, puesto que no está para nosotros solos, sino que debe atender a multitud de usuarios. Un servidor web funciona básicamente de la siguiente manera: recibe una petición (cuando tecleamos en la barra de direcciones, o pinchamos en un enlace), y en fución de ella, envía datos (la página que queremos ver). Estamos obviando toda la complejidad de la propia Red, pero para lo que nos interesa, esta explicación nos vale. Un servidor tiene un número máximo de peticiones que puede atender a la vez. Si se supera ese número, el resto de peticiones pueden quedar en espera o descartarse (dependiendo de cómo esté configurado). Una petición descartada supondrá un mensaje de error en el navegador del que la haya enviado. Si se quedan en espera y el ritmo de peticiones no disminuye, llegará un momento en el que se empiecen a descartar las peticiones, o simplemente el servidor se "caiga" (como siempre, dependiendo del servidor en cuestión).

Cuantos más ordenadores y más potentes sean, más peticiones se podrán atender. Pero claro, todo esto cuesta dinero. Normalmente, los responsables de un sitio web intentan dimensionar sus máquinas para atender con holgura el número de peticiones que reciben normalmente, pero sin pasarse demasiado. Un evento extraordinario (como el eclipse del lunes) puede multiplicar por 10 o por 100 el número de peticiones, desbordando todas la previsiones. Y claro, de donde no hay, no se puede sacar. Los servidores se colapsan.

Así que no se puede achacar a la falta de ancho de banda el colapso generalizado del lunes. Es más, con un ancho de banda más pobre, tal vez se habrían colapsado menos servidores, ya que habría menos peticiones simultáneas.

5 comentarios:

  1. Sí, la gente se cree que van a navegar más rápido por tener conexión a 20 megas.

    Yo por mi parte lo que quiero es subir más rápido.

    ResponderEliminar
  2. Alf, no sé si ya es ponerse demasiado técnico, pero me cuesta entender el mundo del dominio de la frecuencia. Según pone en la wikipedia, el ancho de banda no se define como la máxima velocidad de transmisión, sino como la diferencia entre la máxima y la mínima frecuencia a que se puede transmitir. Supongo que de esto se deduce lo otro, pero me cuesta dar ese paso. Entiendo que si el ancho de banda fuese cero (según la definición de la wikipedia), eso significaría que sólo se puede transmitir a una frecuencia (la máxima y la mínima), con lo cual tendríamos una onda pura y eso no puede llevar información (¿es esto correcto?). Pero no llego a ver el mecanismo según el cual al ir aumentando ese margen de frecuencias se puede transmitir cada vez más información. Me imagino que está muy relacionado con la expresión en series de Fourier, pero me atasco.

    Perdón si no me expreso con corrección, pero es que aunque he leido algo sobre estas cosas sigo estando muy verde.

    ResponderEliminar
  3. Entiendo lo que quieres decir.

    A ver, el término ancho de banda proviene del mundo analógico, y efectivamente, básicamente se puede entender como la diferencia entre la máxima y mínima frecuencia del canal. De ahí lo de "ancho". Pero para entrar en detalle y comprenderlo bien, hay que entrar en el mundo de la transformada de Fourier.

    Para no complicarnos demasiado, piensemos en el ejemplo que has puesto de un tono puro. El ancho de banda sería cero, pero una señal así no tienen ninguna utilidad. Para transmitir información, podemos por ejemplo alternar entre transmitir y no transmitir. Pero la mera transición entre la transmisión y la no transmisión, y viceversa, hace que aparecan frecuencias distintas, más elevadas cuanto más rápida es la transición. Imaginemos ahora que lo que hacemos es cambiar la frecuencia del tono. Uno puede pensar que el ancho de banda sería la diferencia entre las frecuencias utilizadas. Pero nuevamente, aparecen frecuencias diferentes, dependiendo de la velocidad de transición entre un tono y otro.

    Es una explicación muy de andar por casa, y como he dicho, para ser rigurosos habría que explicar lo que es la transformada de Fourier, y cómo se modula la información a transmitir (hay muchas maneras). Pero creo que con esto se entiende que para transmitir más información por unidad de tiempo (transiciones más rápidas), se necesita más ancho de banda.

    El ancho de banda, se mide igual que la frecuencia, en Hz o sus múltiplos (KHz, MHz, etc). Pero en el mundo digital se suele emplear el término "ancho de banda" como sinónimo de máxima velocidad de transmisión (ya que van muy ligados) y esta última se mide en bps o sus múltiplos (Kbps, Mbps, etc).

    ResponderEliminar
  4. Técnicamente el ancho de banda es un concepto de "señal" y se mide en Hz. Es una característica básica de cualquier canal de comunicaciones. En primera aproximación, el caudal (bits por segundo) que se puede transmitir por un canal de comunicaciones es directamente proporcional a su ancho de banda. Por eso estos conceptos están tan relacionados.

    La velocidad máxima de datos alcanzable en un canal de comunicaciones se denomina capacidad del canal y tiene un límite teórico determinado por el Teorema de Shannon.

    Básicamente:

    C (bps) = B (Hz) * log2(1 + S/N)

    donde C es la capacidad, B el ancho de banda del canal y S/N la relación entre señal y ruido, considerando ruido blanco gaussiano aditivo (y perdón por la jerga). Algo conté en mi blog hace tiempo...

    ResponderEliminar
  5. Hola,

    como comentario (tardío) a lo apuntado por Hairanakh sobre la capacidad de canal de Shannon, decir que dicha capacidad es un límite teórico porque para alcanzarla sería necesario untilizar un código (de canal, no de fuente) perfecto, es decir, totalmente aleatorio. Y si codificas de forma totalmente aleatoria, la decodificación es totalmente imposible.

    Alvaro

    ResponderEliminar