¿Cómo se amplían y optimizan los sitios grandes para el tráfico masivo? [cerrado]

8

¿Cómo los sitios como Facebook y Twitter optimizan sus sitios para el tráfico masivo? Además de gastar mucho dinero en obtener los mejores servidores, ¿qué se puede optimizar en su código para acomodar el tráfico masivo?

He leído sobre el almacenamiento en caché de sus páginas en HTML estático, pero eso no es práctico para los sitios de redes sociales donde las páginas se actualizan constantemente.


fuente
Si obtiene un acceso promedio de 10000 por segundo, incluso un almacenamiento en caché de 1 segundo le ahorrará 9999 procesos de secuencia de comandos.
Puede que también le interese esto (no puedo encontrar la publicación original de los propietarios de SO): highscalability.com/blog/2009/8/5/…
Aquí hay un video y una presentación que describe algunas de las cosas que los ingenieros de Facebook hicieron para ampliar.
aufather

Respuestas:

14

Facebook es un ejemplo particularmente extremo de carga, pero en general, sitios de alto tráfico:

  1. use una red de entrega de contenido (CDN) para distribuir activos estáticos (CSS y JavaScript) y medios (imágenes, videos, etc.).
  2. use cachés en memoria como Memcached siempre que sea posible para reducir la carga en la base de datos.
  3. tener un equilibrador de carga que distribuye el tráfico a un grupo de servidores web
  4. caché genera fragmentos HTML (por ejemplo, partes de su página de perfil) e inclúyalos al generar una respuesta completa
Cuenta
fuente
1
+1 No podría haberlo dicho mejor. Para una red CDN, puedo garantizar Amazon S3 + Cloudfront, que me pareció que funciona muy bien para servir contenido estático. Para la memoria caché, echa un vistazo a Redis también.
Martin Wickman
¿Por qué es Facebook un mal ejemplo?
Oh, no esta mal; Solo digo que la mayoría de los sitios web nunca experimentarán carga en el nivel de experiencia de Facebook o Google.
Bill
Facebook ahora tiene 60,000 servidores datacenterknowledge.com/the-facebook-data-center-faq-page-2
Steven A. Lowe
1

Red de entrega de contenidos

Facebook utiliza una red de entrega de contenido estático para servir fotos y videos. Verifique la fuente de cualquier imagen en Facebook y verá algo como fbcdn.net.

Gulshan
fuente
1
¿Puede al menos explicar qué es CDN, en el contexto de Facebook? Por ejemplo, como el enlace blog.facebook.com/blog.php?post=2406207130
Kanini
@Kanini Puedes consultar- en.wikipedia.org/wiki/Content_delivery_network
Gulshan
¿Cuál es la diferencia entre Cloud Computing y CDN?