Nuestra compañía aparecerá en un programa de televisión en horario estelar esta semana, y nos han dicho que podemos esperar alrededor de 200,000 visitantes en nuestro sitio web a la vez.
Normalmente solo recibimos alrededor de 100 visitas por día, por lo que no tengo idea si podemos manejar tanto tráfico. Estamos alojados por 1and1.co.uk
.
¿Hay alguna precaución que podamos tomar para evitar que nuestro sitio quede paralizado?
web-hosting
traffic
visitors
downtime
SamTheMan
fuente
fuente
Respuestas:
Durante el período de alto tráfico, su servidor debe poder manejar todas las solicitudes realizadas por los visitantes de su sitio web. Pero hay algunos límites en las conexiones concurrentes manejadas por el servidor. Por lo tanto, es mejor atender las solicitudes de página lo más rápido posible.
Aquí hay algunas sugerencias para considerar en estas situaciones,
Mejoras a nivel de aplicación:
1. Minimice las solicitudes HTTP para acelerar los tiempos de carga de la página.
a) Combine todos los archivos JS en un solo archivo JS combinado y todos los archivos CSS en un solo archivo CSS combinado.
b) Minifique archivos JS y CSS, por lo que el tamaño del archivo se reducirá y se descargará más rápido.
c) Use CSS Sprites: cuando combina la mayoría o todas sus imágenes en un sprite, convierte múltiples solicitudes de imágenes en una sola. Luego, simplemente use la propiedad CSS de imagen de fondo para mostrar la sección de la imagen que necesita.
d) Retrasar la descarga de imágenes con carga diferida, esto será útil para reducir las solicitudes http.
2. Prepare páginas livianas que esperan más visitas:
a) Excluir elementos decorativos como imágenes o Flash siempre que sea posible; use texto en lugar de imágenes en la navegación del sitio y Chrome, y coloque la mayor parte del contenido en HTML.
b) Utilice páginas HTML estáticas en lugar de dinámicas; este último coloca más carga en sus servidores. También puede almacenar en caché la salida estática de páginas dinámicas para reducir la carga del servidor.
Mejoras a nivel de servidor:
1. Reduzca los valores de tiempo de espera del servidor consultando a su proveedor de alojamiento (no debería ser demasiado bajo).
Cuando los tiempos de espera son más bajos, la conexión se liberará pronto, por lo que el servidor podrá manejar más conexiones.
2. Utilice servicios de terceros como CloudFlare para el almacenamiento en caché de datos estáticos y para proteger su sitio web de usuarios malintencionados y ataques como DDOS.
3. Actualice el hardware de su servidor : actualice las memorias físicas y virtuales, aumente los límites de los procesos de E / S y entrada, si es necesario. Su proveedor de alojamiento podrá ayudarlo mejor.
4. Código dinámico de caché : use APC para almacenar en caché el código de operación PHP.
5. Equilibrio de carga : distribuya la carga en varios servidores de equilibrio de carga.
Cuando se toman todas las acciones requeridas, ahora es el momento de verificar si el sitio web está listo para un gran aumento de tráfico.
Hay algunos servicios de terceros como loadimpact.com que proporcionan pruebas de carga con tráfico simulado. El análisis lo ayudará a comprender cuánta carga puede manejar su sitio web y qué se puede mejorar.
Además, durante el período de pico de tráfico, evite las operaciones de alto uso de CPU como cronjobs de copia de seguridad del sitio web, etc.
fuente
En primer lugar, recomendaría Cloudflare. Puede crear una cuenta básica gratuita y enrutará el tráfico a través de centros de datos locales para minimizar la cantidad de saltos de servidor. Cloudflare también es ideal para almacenar en caché el contenido y tiene protección DDOS.
Aparte de eso, intente recortar la grasa de su capa de servicio. Asegúrese de no tener consultas de bases de datos excesivamente abarrotadas que obstaculicen su código, ni ninguna lógica intensiva de CPU que pueda simplificarse.
También intente almacenar en caché las consultas de la base de datos. Algunas excelentes opciones para el almacenamiento en caché de consultas son Redis o Memcache. OpCaching es otra consideración si está utilizando un lenguaje no compilado.
Pero probablemente lo más importante es mantener su contenido estático (es decir, css, js e imágenes) lo más optimizado posible. Minifique todos sus Javascript, combínelos en un solo archivo si es posible. Recuerde que cada archivo que se incluye en su sitio debe realizar varios saltos de servidor para llegar al usuario final.
¡No subestimes cuánto ancho de banda y tiempo de carga puedes ahorrar también al comprimir imágenes!
Finalmente, considere monitorear el desempeño con herramientas como New Relic.
¡¡La mejor de las suertes!!
Fuente: uno de los desarrolladores del sitio número 12 más popular en el Reino Unido según Alexa.
fuente
Considere probar la carga de su sitio. Hay herramientas gratuitas disponibles como JMeter , The Grinder y Gatling , que pueden simular un gran número de visitantes a su sitio.
Al probar el impacto del tráfico pesado con anticipación, puede determinar si alguna afinación que haya realizado ha sido efectiva y, si no es así, ver más afinaciones.
fuente
Si estás en 1 y 1, es probable que estés buscando un alojamiento barato. El alojamiento económico significa que tiende a hacer todo bajo una sola caja. Un punto importante para el alojamiento es que cuando aloja todo en el mismo cuadro, está dividiendo recursos entre partes importantes de su sitio:
Y siendo 1 y 1, hay una buena posibilidad de que esté utilizando un panel de control como Plesk o cPanel, lo que significa que tiene una capa adicional de cosas que compiten por los recursos. ¿Y el último clavo en tu ataúd? No tienes muchos recursos. Quizás tenga 1 CPU (o una CPU virtual) y muy poca RAM (si tiene más de 2 GB, me sorprenderá).
Cuando abandonamos 1 y 1 fuimos con un proveedor de alojamiento escalable (Amazon Web Services en nuestro caso) e hicimos varias cosas que antes no podíamos.
AWS no es el único juego en la ciudad (Azure, Rackspace, etc.), pero asegúrese de que 1 y 1 puedan escalar para satisfacer su demanda.
fuente
Verifique con su ISP y vea si hay un límite en su ancho de banda. Actualice su plan de alojamiento si el ancho de banda es insuficiente para la cantidad de tráfico que espera. No desea mostrar un mensaje de "Límite de ancho de banda excedido" a sus visitantes.
fuente
Desde mi experiencia personal, he sabido que incluso el mejor VPS tiene sus limitaciones. Me estoy volviendo un verdadero laico aquí.
Uno de nuestro sitio web de deportes fue alojado en un VPS. Durante un partido entre Pakistán e India, recibimos más de 70,000 visitas. Teníamos un VPS Inmotinghosting con 4 GB de RAM y procesamiento de 2.algo GHz, ancho de banda de 1TB, almacenamiento SSD y otras cosas sofisticadas. También teníamos activada una versión paga de Cloudflare.
Era solo la mitad del partido y el sitio web dejó de funcionar. Nunca se activó durante el partido y perdimos potencialmente más de 70,000 visitantes más. Más tarde supimos que nuestro ancho de banda se había consumido y sin que el host de origen no funcionara, la mayoría de las veces CDN es inútil.
Lección: además de obtener un VPS y sintonizar un CND como Cloudflare, minimice el tamaño de su página. Cuanto menor es mejor. Puede utilizar el almacenamiento en caché de la página y la minificación de código, que es muy útil para manejar el tráfico.
fuente
No has definido "todo a la vez" muy bien. Digamos que estás viendo 200,000 visitantes únicos en media hora. Eso es 111 solicitudes por segundo, sin tener en cuenta los visitantes que hacen clic y abren más páginas (lo que quieres, ¿verdad?).
Lo primero que haría es historias en Google de personas que manejan cantidades similares de tráfico. Muchas personas escribirán sobre sus experiencias en sus blogs para ayudar a otros. Notarás que es extremadamente difícil encontrar una historia sobre alguien que lo hace en un alojamiento compartido, y hay una razón para eso. Para empezar, busque soluciones como Digital Ocean o Amazon Web Services, utilizando el centro de datos más cercano a su audiencia. Y estoy de acuerdo en que descargar todos sus recursos estáticos a CloudFlare, incluso una cuenta gratuita, es una excelente idea.
Aparte de eso, pruebe su código agregando secuencias de comandos de tiempo en la parte superior e inferior de sus páginas, suponiendo que sean dinámicas. Suponiendo que mi suposición acerca de los números es correcta, deberá poder publicar cada página en menos de 10 milisegundos para mantener cualquier tipo de rendimiento aceptable. Si atiende todas las solicitudes a través de SSL de forma predeterminada, desactívelas durante un par de días mientras pasa la tormenta.
Además, 200,000 suena muy aterrador, pero tenga en cuenta que no necesita estar demasiado asustado (aunque debería ser, un poco). Por ejemplo, cuando la revista Paper publicó fotos NSFW de Kim Kardashian, solo se necesitaron cuatro servidores web de tamaño mediano y Amazon ELB para manejar la carga, según este artículo (SFW). Definitivamente no creo que su configuración actual pueda manejarlo, pero no debería necesitar exactamente dieciséis servidores web con 48 núcleos cada uno alimentado por su propio generador nuclear pequeño.
fuente
Conozca esta vieja pero muy buena pregunta y desearía tener una buena información sobre el tema hace unos años ...
De vez en cuando tenemos sitios (relacionados con la actividad escolar) que aparecen en las redes de televisión. Dado que operamos con un presupuesto muy ajustado, el "equilibrio de carga" es la solución. Las cajas de VPS se pueden obtener bastante baratas en estos días y solo duplicamos / duplicamos nuestro contenido en 2-3 de ellas.
Mira este artículo y lee sobre "round-robin".
Puede encontrar más información sobre las pruebas de carga aquí .
Cuando comenzamos a tratar de manejar los picos, simplemente teníamos nuestro contenido en 2-3 cajas VPS y colocamos su NS en la configuración del registrador.
fuente
Lo mejor es tener servidores dedicados con múltiples clústeres para resolver su problema.
fuente
Buena suerte reescribiendo su sitio web, cambiando de proveedor y migrando contenido a un CDN en menos de una semana.
Como se habrá dado cuenta de las otras respuestas, estas son las cosas mínimas que debe hacer para preparar su sitio para un gran aumento en el tráfico. Aunque si actualmente está ejecutando en 1and1.co.uk, probablemente no tenga un equipo sólido de ingenieros de red, DBA, programadores y optimizadores frontales que trabajen para usted.
No es probable que suceda, ¿verdad?
No ha dicho qué hace con su sitio web, si ejecuta el carrito de compras o si podría implementarse con contenido estático. Si este es el caso, entonces podría sobrevivir al tsunami si raspa todo el sitio en archivos estáticos y los publica en lugar del sitio normal (haga una copia de seguridad de la versión actual primero).
También debe hablar con 1 y 1 (con su tarjeta de crédito en la mano).
fuente