ELSERVER.COM
Acceso a clientes
ELSERVER.COM

Bienvenido a nuestro blog.
Aquí charlamos abiertamente con nuestros clientes y seguidores entusiastas.

Buscar

  • Últimos Comentarios
    • Joel Chornik: uff, como se me pasó eso!
    • el burro: bien hechas, decidimos satisfacer la sugerencia de X y al mismo tiempo hacerla extensiba a todos nuestros...
    • carlos lopez: si se gana dinero yo gano en 3$ y 5$ diarios con arroba.com.ve
    • Quimiquero: Tengo otra solicitud: que se puedan cambiar los valores por defecto, a través del ini_set en php, de los...
    • Pablo: Aclaracion, por que necesito esto.. hay veces que no funciona tan bien y va a spam directamente… Grax.

Elecciones y Web Hosting

Por Marketing el 5 Jun 2007 en Social, Técnico

El Domingo pasado Joel me llamó para pedirme que le averiguase dónde debía votar, ya que no le funcionaba la conexión a Internet de la casa. Al igual que como hubiera hecho la mayoría de ustedes, entré en Google Argentina y busqué “dónde votar“.

Los primeros tres resultados eran:

  1. http://www.elecciones2007.buenosaires.gov.ar/
  2. http://www.tusbuscadores.com/elecciones/
  3. http://www.sitiosargentina.com.ar/notas/octubre-2005/donde-votar.htm

Obviamente, reconocí al primer resultado como el “oficial”, y al resto como simples “repetidoras” con links a los sitios oficiales. Así que sin dudarlo, entré al primero: http://www.elecciones2007.buenosaires.gov.ar/.

Para mi sorpresa, me encontré con el siguiente mensaje:

elecciones2007_1.png

Wooah! Lo primero que pensé es que no me gustaría estar en los zapatos del hostmaster a cargo del sitio. Realmente, sufrí por él… Luego me puse a hacer algunas cuentas rápidas, y resultó obvio, un sólo servidor no resiste a cientos de miles de personas intentando averiguar dónde deben votar, todas en una franja de tiempo bastante reducida (sábado por la tarde / domingo por la mañana).

Me pregunto cómo será el “efecto elecciones” comparado con Digg o Slashdot… Creo que la mayor diferencia estaría en que el origen de las visitas en época de elecciones es mayormente local, generando conexiones de menor duración gracias a la latencia reducida. Igualmente, debe haber sido un infierno.

A los pocos minutos el servidor volvió a estar en línea, y felizmente pude hacer mi consulta. Pero no dudo que les haya pasado lo mismo varias veces a lo largo de todo el día.

El sitio parecía estar armado pensando en el tráfico que recibirían, todo hecho en CSS, muy liviano. Para hacer las consultas usaban PHP, seguramente un servidor MySQL, y un captcha para validar la consulta:

captcha elecciones

Pero cuando hay un sólo servidor para tantas consultas simultáneas, pueden pasar dos cosas dependiendo de cómo esté configurado el servidor. En general, suceden las dos, y en este desgraciado orden:

  1. El servidor tiene un límite de conexiones simultáneas básico, predefinido por la configuración. Digamos, 256.
  2. Llegan mil visitas en un lapso de 10 segundos. El servidor no puede recibirlas a todas, así que las que pasen la número 256 reciben un mensaje de error 503.
  3. ¡Caramba! El administrador recibe decenas de llamadas a su celular. Entra en la consola del servidor, temblando de miedo, rezándole a todos los dioses que lo dejen sobrevivir a esta crisis.
  4. Al poco tiempo descubre el desperfecto: ¡EUREKA! El servidor tiene un límite muy bajo de conexiones simultáneas. Así que lo sube a 512 y le dice “Já! Tomá!”. Reinicia al servidor y pone en su browser www…. Funciona. Carga muy rápido. Sonríe. Suspira relajado.
  5. Pero pasan algunos minutos, y vuelven a recibir otra tanda de mil visitas en menos de 10 segundos. El administrador repite los pasos que lo salvaron por primera vez, sin ver que lo que está haciendo va a generar una gran reacción en cadena que no va a poder frenar.

El servidor puede procesar hasta X peticiones simultáneas con un buen rendimiento. Pasado ese límite, lo único que se consigue aumentando la cantidad de pedidos simultáneos es que todo funcione lento, y que el servidor quede con miles de conexiones “abiertas”. Como sabiamente dijo Joel ayer, “es como remar en dulce de leche”.

Y las consecuencias, obviamente, son peores. Pasado ese límite, se genera una bola de nieve que no se puede parar, hasta que el servidor queda estancado (colgado), y hay que tomar otras medidas para hacerlo volver en sí (léase, pegarle un botonazo).

¿Cómo evitarlo?

Todo depende de dos factores:

  • Hardware: tener un esquema de servidores ideado para recibir picos de tráfico, como un grid o un cluster. Al distribuir la carga entre una docena de servidores, se multiplica la capacidad por la cantidad de servidores en la red. Nuestros nodos suelen tener entre 4 y 8 servidores de procesamiento, con 2 gateways que distribuyen inteligentemente la carga.
  • Software: optimizar al máximo el código. Hacer contenido estático. Enviar el tráfico estático a servidores más livianos (como lighttpd). Optimizar las consultas SQL. En ciertos casos en que las consultas son siempre las mismas, habilitar un servidor memcache.

Steve Souders del “Exceptional Performance Team” de Yahoo! dió una brillante presentación con consejos útiles para sitios de alto tráfico. Para los que quieran profundizar en este tema, les recomiendo verla, está muy buena.

Moraleja: cuando sepan que su sitio va a recibir miles de visitas en un lapso corto de tiempo, estén preparados ;-)

Ya dejaron 11 opiniones sobre esta nota:

ELSERVER SRL no se responsabiliza por las opiniones vertidas en el presente blog sobre personas físicas o jurídicas, siendo las mismas exclusiva responsabilidad de quien las vierte. Asimismo las opiniones dadas por los usuarios del blog no reflejan necesariamente la opinión de ELSERVER SRL.

  1. Lionel el 05 Jun 2007 a las 12:33 pm #

    Les voy a prestar mi servidor Pentium 122 mhz con openbsd para que puedan consultar un par de visitas mas.

  2. Roberto O. Fernández Crisial el 05 Jun 2007 a las 10:49 pm #

    Me parece que el hostmaster de Fotolog debería leer este post!

    Tomado hace unos minutos je..

    Fotolog caido!

  3. German el 06 Jun 2007 a las 9:45 am #

    Interesante. Igual, sin pretender desmerecer a los empleados de IT en entidades públicas, generalmente todo lo que hacen, lo hacen mal “desde el vamos”.

    Primariamente por estar habituados a viejas tecnologías y carecer, en muchos casos, de los conocimientos adecuados (léase: entraron al cargo no por concurso, sino por palanca), y en segundo, pero no menos importante, por las propias limitaciones que pueden tener a la hora de implementar la tecnología en si, donde los presupuestos contradicen ampliamente el concepto práctico “de lo que debería de ser”.

    Personalmente, tengo pésimas experiencias con nuestro e-government y una estadística personal claramente probatoria: de 5 organismos públicos contactos en estos últimos meses, sólo uno respondió. Más curioso aún si me pongo a pensar que ese único organismo fue el Instituto Antártico Argentino y, para mi sorpresa, fue en menos de 24hs de efectuado mi envio. Policia Federal, Policia Bonaerense, Regimiento de Granaderos a Caballo y Ejército Argentino, por ejemplo, jamás dieron una respuesta o siquiera un autoresponder.

    Estamos en el siglo 21 y tenemos internet. Sólo que todavía no sabemos, como país, y muchas veces como capitalistas, ni el completo potencial de ésta o su apropiada aplicación.

    Cuestión de seguir educándonos con los que más saben mientras.

    ¡Un abrazo!

  4. Pablo Impallari el 06 Jun 2007 a las 6:25 pm #

    La presentacion de yahoo es excelente, justo la habia leido hace un par de dias.
    No dejen de descargarla porquer no tiene desperdicio.

  5. Roberto A. Fuster el 07 Jun 2007 a las 2:00 pm #

    Hola Amigos, les cuento algo, el otro dia hablando con la gente del NIC me comentaron que por ejemplo tiemen Pentium I en la terminales windows y que son solo 8 personas para manejar 500 llamados telefonicos y fax por dia, o sea que como decia Nicolas y German, no solo es problema de servidores sino tambien de personal y de recursos para cada uno de ellos.

  6. Walter Schultheis el 13 Jun 2007 a las 4:26 pm #

    La idiosincracia Argentina es eso, resistirse de manera proverbialmente terca, a toda mejora, progreso o actualización, ya que eso significa esfuerzo …

  7. Milton! el 19 Jun 2007 a las 5:25 pm #

    Está bueno mostrar un problema real y ver la solución que darían ustedes en un caso similar…

    No sé, me gustó…

  8. Nicolás Alen el 19 Jun 2007 a las 8:20 pm #

    ¿Qué haríamos nosotros? ¿Además de transpirar, llorar y empezar a correr por los pasillos del datacenter? jeje…

    Desde el 98 que estamos en esto. Creo que si no hubieramos armado el grid, a esta altura ya estaríamos muertos de stress :P

    El famoso “grid”, que soluciona este (y otros) problemas, está formado por nodos de entre 5 y 10 servidores: 2 proxys transparentes, 4 a 7 web servers y 1 file server. Entonces, cuando llega un pico de visitas, se te pueden saturar o colgar los servidores web, pero:

    1) Nadie se entera, porque los proxys dejan de derivarles tráfico.
    2) Podés ampliar on-demand, conectando otro y reconfigurando.
    3) Tenés más “aire”. No es lo mismo 1 que 4.

    El único caso en que te pase lo mismo con el grid es que varios clientes en un mismo nodo se pongan de acuerdo y tengan un pico ENORME de tráfico. Puede pasar, pero…

    Saludos!

  9. lucas el 22 Jun 2007 a las 7:25 pm #

    disculpen, pero con su famoso “grid” no da el error de servidor no encontrado, pero si da un error de proxy, y muchas veces para mi gusto. Aunque soporte no lo quiere reconocer cuando le mandas un email con la captura de pantalla… esto es solo una critica constructiva, no se enojen :)

    saludos

  10. Joel Chornik el 22 Jun 2007 a las 7:29 pm #

    Lucas, el “Proxy Error” en general es resultado de algo más básico detrás (un script que da timeout, alguna regla de htaccess que genera problemas, etC), querés enviarme los datos de tu consulta y lo vemos directamente con un programador ?

    Saludos!

  11. Tavo De Chivix el 05 Jul 2007 a las 5:49 am #

    Seria algo parecido a un ataque DDos??

    Que Grosos!! son mis idolos!!! no sabia que tenian este Blog!!.. Mi sueño es en un futuro poder ser un oponente digno de ustedes.. je.. aunque me falta mucha experiencia todavia.. recien estoy reuniendo de a migajas todo lo que necesito para montar mi propia empresa de Hosting.. je.. Les dejo un Abrazo!

Trackback URI | Seguir comentarios vía RSS

Dejá tu opinión!