Se préparer à une forte augmentation du trafic


35

Notre société participera cette semaine à une émission télévisée aux heures de grande écoute. Elle nous a dit que nous pouvions nous attendre à environ 200 000 visiteurs sur notre site Web en même temps.

Nous ne recevons normalement qu'environ 100 visites par jour, alors je ne sais pas si nous pouvons gérer autant de trafic. Nous sommes hébergés par 1and1.co.uk.

Existe-t-il des précautions que nous pouvons prendre pour éviter que notre site ne soit paralysé?


3
Avez-vous lu ceci? Je recommanderais certainement de permettre à un service comme CloudFlare de gérer au minimum les actifs statiques. webmasters.stackexchange.com/questions/14394/…
richhallstoke le

10
Vous devriez parler à 1and1.co.uk le plus rapidement possible! ils peuvent déplacer votre site Web vers l'un de leurs services VPS avec un rapport processeur / ram / bande passante élevé, ce qui permettra le pic! ensuite, ils peuvent réduire le CPU / RAM pour vous faire économiser de l'argent
Simon Hayter

1
Êtes-vous sur un plan d'hébergement partagé avec 1 & 1? Si c'est le cas, vous devez vraiment rechercher une solution alternative (VPS très puissant ou hébergement basé sur le cloud) dès que possible. Je doute fort que tout environnement d'hébergement partagé puisse gérer ce type de trafic.
Sean

3
J'étais un hébergeur. La plupart des hôtes peuvent gérer ces pointes assez facilement s'ils le savent à l'avance et peuvent vous aider avec une foule d'options qui ne sont normalement pas offertes. La raison en est simple. Ils disposent probablement d'équipements tels que des caches de matériel, des serveurs supplémentaires, des options d'équilibrage de la charge, des options de basculement, etc. L'idée est de donner l'impression qu'ils peuvent gérer n'importe quoi, avec élégance. C'est bon pour les affaires. La plupart vont configurer ces options sans frais. C'est en fait une partie normale des affaires.
closetnoc

Vous aimez savoir qu’il existe des outils pour tester une charge de serveur importante. Je ne connais aucun nom, mais ils sont faciles à trouver. Amplifiez les réglages et vous pourrez vous donner un test contrôlé sans vous planter de visage lorsque les vraies personnes se présenteront :)
Martijn

Réponses:


26

Pendant la période de trafic intense, votre serveur devrait pouvoir traiter toutes les demandes formulées par les visiteurs de votre site Web. Cependant, le nombre de connexions simultanées gérées par le serveur est limité. Il est donc préférable de traiter les demandes de page le plus rapidement possible.

Voici quelques suggestions à considérer dans ces situations,

Améliorations au niveau de l'application:

1. Réduisez les demandes HTTP pour accélérer les temps de chargement des pages.

a) Combinez tous les fichiers JS ensemble dans un seul fichier JS combiné et tous les fichiers CSS dans un seul fichier CSS combiné.

b) Réduisez les fichiers JS et CSS pour réduire la taille du fichier et le télécharger plus rapidement.

c) Utiliser des sprites CSS: lorsque vous combinez la plupart ou la totalité de vos images dans un sprite, vous convertissez plusieurs demandes d'images en une seule. Il vous suffit ensuite d'utiliser la propriété CSS background-image pour afficher la section de l'image dont vous avez besoin.

d) Retarder le téléchargement d’image avec chargement paresseux, cela sera utile pour réduire le nombre de requêtes http.

2. Préparez des pages légères qui attendent plus de visites:

a) Exclure les éléments décoratifs tels que les images ou Flash dans la mesure du possible; utilisez du texte au lieu des images dans la navigation du site et chrome, et mettez la plupart du contenu au format HTML.

b) Utilisez des pages HTML statiques plutôt que des pages dynamiques; ces derniers mettent plus de charge sur vos serveurs. Vous pouvez également mettre en cache la sortie statique des pages dynamiques pour réduire la charge du serveur.


Améliorations au niveau du serveur:

1. Réduisez les valeurs de délai d'attente du serveur en consultant votre fournisseur d'hébergement (ne devez pas être trop bas).

Lorsque les délais sont plus courts, la connexion sera bientôt libérée afin que le serveur puisse gérer plus de connexions.

2. Utiliser des services tiers que CloudFlare pour la mise en cache des données statiques et pour protéger votre site Web contre les utilisateurs malveillants et les attaques telles que DDOS.

3. Mettez à niveau votre matériel serveur - Mettez à niveau les mémoires physique et virtuelle, augmentez les limites des processus d'E / S et d'entrée, si nécessaire. Votre hébergeur sera en mesure de vous aider au mieux.

4. Cache le code dynamique - Utilisez APC pour mettre en cache l'opcode PHP.

5. Équilibrage de la charge - Répartissez la charge sur plusieurs serveurs d'équilibrage de la charge.


  • Lorsque toutes les mesures requises sont prises, il est maintenant temps de vérifier si le site Web est prêt pour un pic de trafic important.

    Certains services tiers, tels que loadimpact.com, fournissent des tests de charge avec un trafic simulé. L'analyse vous aidera à comprendre la charge que votre site Web peut gérer et ce qui peut être amélioré.

  • De même, pendant la période de pointe du trafic, évitez les opérations nécessitant une utilisation intensive du processeur, telles que les tâches cron, de sauvegarde de site Web, etc.


3
Ce sont toutes des choses liées au site et excellentes! Mais à moins que 200 000 requêtes aient été adressées à votre serveur en même temps, cela peut ne pas être suffisant. En tant qu'hôte Web précédent, j'aimais mettre en place un cache matériel volumineux et parcourir le site en chargeant le cache. Je voudrais également répliquer le site sur plusieurs serveurs même s'ils sont partagés et mettre en œuvre l'équilibrage de charge à l'aide d'un proxy ou d'un pare-feu. C'était généralement suffisant. La plupart des gens ne se rendent pas compte que le plus gros goulot d'étranglement est en réalité HD I / O. Augmenter la mémoire et l'utiliser pour le cache Apache et MySQL est également d'une grande aide.
closetnoc

2
vous êtes invités à améliorer la réponse! :)
Nikhil Supekar le

1
J'aime ta réponse! Je l'ai voté. S'il vous plaît ne soyez pas offensé. Je voulais juste souligner quelques points du point de vue des hôtes Web. Juste un commentaire. Pas un slam. Encore une fois, votre réponse est excellente !! Je suggère souvent de contacter l'hôte parce que ces choses arrivent de temps en temps et il y a des options que l'hôte peut faire qui aideraient et ne coûteraient rien. La plupart des hôtes sont contents de l'attention! Pour moi, le processus était simple car le matériel était déjà en place. Il ne m'aurait pas fallu beaucoup de temps pour préparer le site à un tel événement. ;-) Merci pour l'invitation.
closetnoc

1
Aucune infraction prise. En fait, nous pourrions vraiment utiliser votre expérience avec le matériel serveur.
Nikhil Supekar

1
Je suis à la retraite de l'industrie depuis plus d'une décennie, à l'exception de la recherche de réseaux de confiance. Ce que j'aime bien, c’est la mise à jour le cache pour Apache et MySQL ou des applications similaires afin de réduire le risque de blocage du sous-système d’E / S. Je l'ai fait ici et cela peut vraiment fonctionner. Je mets également en garde à propos de trop de mémoire sur les systèmes depuis le backing store ie. La maintenance des fichiers d'échange (et autres) peut considérablement augmenter les demandes d'E / S, qui ont tendance à être plus lentes. Il y a un endroit idéal, mais je ne sais plus ce qu’il en est. Je suppose que vous êtes beaucoup plus expert que moi. ;-)
closetnoc le

7

Tout d'abord, je recommanderais Cloudflare. Vous pouvez créer un compte de base gratuit. Le trafic sera acheminé via des centres de données locaux afin de minimiser le nombre de sauts de serveur. Cloudflare est également idéal pour la mise en cache de contenu et dispose d'une protection DDOS.

Autre que cela, essayez de réduire la graisse de votre couche de service. Assurez-vous de ne pas avoir de requêtes de base de données excessivement gonflées dans la base de données, ni de logique trop gourmande en ressources processeur pouvant être simplifiée.

Essayez également de mettre en cache toutes les requêtes de base de données. Redis ou Memcache sont d'excellentes options pour la mise en cache des requêtes. OpCaching est un autre facteur à prendre en compte si vous utilisez un langage non compilé.

Mais le plus important est probablement de garder votre contenu statique (css, js et images) aussi optimisé que possible. Réduisez tout votre Javascript, combinez-les tous dans un seul fichier si possible. N'oubliez pas que chaque fichier inclus dans votre site doit créer plusieurs sauts de serveur pour atteindre l'utilisateur final.

Ne sous-estimez pas non plus la bande passante et le temps de chargement que vous pouvez économiser en compressant les images!

Enfin, envisagez de surveiller les performances avec des outils tels que New Relic.

Bonne chance!!

Source: l'un des développeurs du 12ème site le plus populaire au Royaume-Uni, selon Alexa.


5

Pensez à tester en charge votre site. Il existe des outils gratuits tels que JMeter , The Grinder et Gatling , qui peuvent simuler un grand nombre de visiteurs sur votre site.

En testant à l'avance l'impact d'un trafic dense, vous pouvez déterminer si les réglages que vous avez effectués ont été efficaces et, le cas échéant, rechercher d'autres réglages.


3

Si vous êtes sur 1and1, vous êtes probablement à la recherche d'un hébergement bon marché. Un hébergement bon marché signifie que vous avez tendance à tout faire dans une boîte. Un problème majeur pour l'hébergement est que lorsque vous hébergez tout sur la même boîte, vous partagez des ressources entre des parties importantes de votre site:

  • Votre serveur Web (Apache, Nginx, etc.)
  • Votre base de données (MySQL, PostGreSQL, etc.)

Et étant donné que vous utilisez 1 et 1, vous utilisez un panneau de configuration comme Plesk ou cPanel, ce qui signifie que vous avez une couche supplémentaire d'éléments en concurrence pour les ressources. Et le dernier clou dans ton cercueil? Vous n'avez pas beaucoup de ressources. Vous avez peut-être 1 processeur (ou un processeur virtuel) et très peu de RAM (si vous avez plus de 2 Go, je serai surpris).

Lorsque nous avons abandonné 1and1, nous avons opté pour un fournisseur d’hébergement évolutif (Amazon Web Services dans notre cas) et nous avons fait plusieurs choses que nous ne pouvions pas auparavant.

  1. Amazon a ses propres instances pour les bases de données (RDS) et notre base de données a donc des ressources à respirer. La plupart des systèmes de SGBDR vivent et respirent sur la RAM et nous en avons beaucoup. Désormais, vous pouvez également provisionner des disques SSD avec des E / S élevées, ce qui rend l’autre point d’arrêt de base de données (écriture de données) moins pénible.
  2. Nous avons un équilibreur de charge avec 2 serveurs Web. Avec un backend DB lourd, nous n’avions pas besoin de frontaux haut de gamme, nous avons donc deux serveurs bas de gamme.
  3. Nous sommes passés à quelque chose qui pourrait amener des machines entièrement configurées à la demande. En utilisant quelque chose comme Chef ou Puppet, vous pouvez facilement ajouter de nouveaux serveurs Web. Il est 100% transparent pour vos utilisateurs finaux si vous le faites correctement. AWS a également Opsworks afin que vous puissiez créer vos scripts directement dans AWS.
  4. Changez la taille de votre instance à la demande. C'est un élément clé pour nous. Si la base de données s'enlise, je peux la supprimer et la relancer sous forme de version plus grande en quelques minutes. Oui, cela impliquerait des temps d'arrêt, mais quelques minutes d'inactivité sont préférables aux heures d'un site terriblement lent. Totalement peur des temps d'arrêt? Conservez une réplique en lecture dans les coulisses, réduisez-la, remplacez-la par une instance plus importante, passez à la maîtrise et vous évitez les temps morts pour le coût d'une machine supplémentaire.

AWS n'est pas le seul jeu en ville (Azure, Rackspace, etc.), mais assurez-vous que 1and1 peut être adapté à votre demande.


1

Vérifiez auprès de votre fournisseur de services Internet et vérifiez si votre bande passante est limitée. Mettez à niveau votre plan d'hébergement si la bande passante est insuffisante pour le volume de trafic attendu. Vous ne souhaitez pas afficher un message "Limite de bande passante dépassée" à vos visiteurs.


1

De par mon expérience personnelle, je sais que même le meilleur VPS a ses limites. Je vais vraiment profane est ici.

L'un de nos sites Web sportifs était hébergé sur un VPS. Au cours d'un match opposant le Pakistan et l'Inde, nous avons reçu plus de 70 000 hits. Nous avions un VPS Inmotinghosting avec 4 Go de RAM et un traitement quelque chose de quelque chose comme GHz, une bande passante de 1 To, un stockage SSD et d’autres éléments fantaisistes. Nous avons également activé une version payante de Cloudflare.

C'était juste au milieu du match et le site Web était tombé en panne. Il n'est jamais venu en direct pendant le match et nous avons potentiellement perdu plus de 70 000 visiteurs. C’est plus tard que nous avons su que notre bande passante était consommée et que sans l’hôte source, CDN est la plupart du temps inutile.

Leçon: En plus d'obtenir un VPS et de régler un CND tel que Cloudflare, réduisez la taille de la page. Le moins c'est le mieux. Vous pouvez utiliser la mise en cache des pages et la minification de code, ce qui est très pratique pour gérer le trafic.


1

Vous n'avez pas très bien défini "tout à la fois". Disons que vous recherchez 200 000 visiteurs uniques en une demi-heure. C'est 111 demandes par seconde, sans tenir compte des visiteurs qui cliquent et ouvrent plus de pages (ce que vous voulez, non?).

La première chose que je ferais, ce sont les récits de Google sur des personnes qui gèrent un volume de trafic similaire. Beaucoup de gens écriront leurs expériences sur leurs blogs pour aider les autres. Vous remarquerez qu'il est extrêmement difficile de trouver une histoire sur le fait que quelqu'un le fasse sur un hébergement partagé, et il y a une raison à cela. Recherchez des solutions telles que Digital Ocean ou Amazon Web Services, en commençant par utiliser le centre de données le plus proche de votre public. Et je conviens que décharger toutes vos ressources statiques sur CloudFlare, même sur un compte gratuit, est une excellente idée.

En dehors de cela, testez votre code en ajoutant des scripts de chronométrage en haut et en bas de vos pages, en supposant qu'ils soient dynamiques. En supposant que mon hypothèse sur les chiffres soit correcte, vous devez pouvoir afficher chaque page en moins de 10 millisecondes pour conserver toute performance acceptable. Si vous répondez à toutes les demandes via SSL par défaut, désactivez-le pendant quelques jours pendant le passage de la tempête.

En outre, 200 000 sons semblent très effrayants, mais gardez à l’esprit que vous n’avez pas besoin d’être trop effrayé (même si vous devriez l’être un peu). Par exemple, lorsque le magazine Paper a publié des photos de Kim Kardashian sur NSFW, il suffisait de quatre serveurs Web de taille moyenne et d'Amazon ELB pour gérer la charge, selon cet article (SFW). Je ne pense vraiment pas que votre configuration actuelle résoudra le problème, mais vous ne devriez pas vraiment avoir besoin de seize serveurs Web avec 48 cœurs alimentés chacun par leur propre petit générateur nucléaire.


1

Connaissez cette vieille question, mais très bonne, et souhaiteriez avoir de bonnes informations sur le sujet il y a quelques années ...

De temps en temps, nous avons des sites (liés aux activités scolaires) diffusés sur les réseaux de télévision. Puisque nous travaillons avec un budget très serré, la solution est l’équilibrage de charge. Les boîtiers VPS peuvent être assez bon marché ces jours-ci et nous ne faisons que dupliquer notre contenu sur 2-3 d'entre eux.

Regardez cet article et lisez à propos de "round-robin".

Plus d'informations sur les tests de charge peuvent être trouvées ici .

Lorsque nous avons commencé à essayer de gérer les pics, nous avions simplement notre contenu sur 2 ou 3 boîtiers VPS et placé leur NS dans les paramètres du registraire.


0

Le mieux est d’avoir des serveurs dédiés multi-cluster résoudront votre problème


0

Bonne chance pour réécrire votre site web, changer de fournisseur et migrer le contenu vers un CDN en moins d'une semaine.

Comme vous l'avez peut-être compris dans les autres réponses, voici le minimum que vous devez faire pour que votre site soit prêt pour une augmentation importante du trafic. Bien que si vous utilisez actuellement 1and1.co.uk, vous ne disposez probablement pas d'une équipe solide d'ingénieurs réseau, d'administrateurs de base de données, de programmeurs et d'optimiseurs front-end à votre service.

Ce n'est pas susceptible de se produire, n'est-ce pas?

Vous n’avez pas dit ce que vous faites avec votre site Web, qu’il fonctionne avec un panier ou qu’il puisse être mis en œuvre avec du contenu statique. Si tel est le cas, vous pourrez peut-être survivre au tsunami si vous extrayez tout le site en fichiers statiques et que vous les publiez à la place du site normal (sauvegardez d'abord la version actuelle).

Vous devriez également parler à 1and1 (avec votre carte de crédit en main).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.