ACTUALIZACIÓN 2009-05-21recomendación Arquitectura para la carga equilibrada sitio ASP.NET
He estado probando el método # 2 de la utilización de un único recurso compartido de red. Se está dando lugar a algunos problemas con Windows Server 2003 bajo carga:
http://support.microsoft.com/kb/810886
actualización final
que he recibido una propuesta de un sitio web de ASP.NET que funciona de la siguiente manera:
Hardware load-balancer -> 4 servidores web IIS6 -> SQL Server DB con clúster de conmutación por error
Aquí está el problema ...
Estamos eligiendo dónde almacenar los archivos web (aspx, html, css, images). Se han propuesto dos opciones:
1) Cree copias idénticas de los archivos web en cada uno de los 4 servidores IIS.
2) Coloque una sola copia de los archivos web en un recurso compartido de red accesible por los 4 servidores web. Los webroots en los 4 servidores IIS se asignarán al recurso compartido de red único.
¿Cuál es la mejor solución? La opción 2, obviamente, es más simple para las implementaciones, ya que requiere copiar archivos en una sola ubicación. Sin embargo, me pregunto si habrá problemas de escalabilidad ya que cuatro servidores web están accediendo a un solo conjunto de archivos. ¿Caché IIS estos archivos localmente? ¿Golpearía la red compartida en cada solicitud del cliente? Además, ¿el acceso a una red compartida siempre será más lento que obtener un archivo en un disco duro local? ¿La carga en el recurso compartido de red empeora sustancialmente si se agregan más servidores IIS?
Para dar una perspectiva, esto es para un sitio web que actualmente recibe ~ 20 millones de visitas por mes. En el pico reciente, recibía alrededor de 200 visitas por segundo.
Háganme saber si tiene experiencia particular con dicha configuración. Gracias por el aporte.
ACTUALIZACIÓN 2009-03-05
Para aclarar mi situación - los "despliegues" en este sistema son mucho más frecuentes de lo que una aplicación web típica. El sitio web es el front-end para un CMS de back office. Cada vez que se publica contenido en el CMS, las páginas nuevas (aspx, html, etc.) se envían automáticamente al sitio en vivo. Las implementaciones son básicamente "a pedido". Teóricamente, este empuje podría ocurrir varias veces en un minuto o más. Así que no estoy seguro de que sea práctico implementar un servidor web a la vez. ¿Pensamientos?
+1 Hacemos lo mismo: sacamos un servidor "fuera de rotación", implementamos, calentamos, volvemos a la rotación. –
+1 la única manera de hacerlo. Sin embargo, lo llamamos "en la mezcla" y "fuera de la mezcla". – DancesWithBamboo
+1 este es un proceso probado en el tiempo. Se agregó una respuesta sobre cómo manejar la alta tasa de actualización. – eglasius