Tests de charge pour éviter que les pics d’affluence ruinent votre site Internet

L’objectif d’un site internet est souvent corrélé au nombre d’utilisateurs connectés, le fameux “trafic”. On mesure la popularité d’un site par son trafic et dans de nombreux cas on le monétise. Un raccourci rapide : plus j’ai de visiteurs et plus mon site fonctionne ! Il convient donc d’associer non seulement les infrastructures nécessaires pour absorber l’affluence désirée, mais plus encore la qualité des développements (IHM et base de données).

Bien souvent la montée en charge sur un site internet est progressive. Les cas de figure où un site passe du jour au lendemain de 10 à 150 visiteurs simultanés restent relativement rares. Dans la (très) grande majorité des cas l’infrastructure évolue parallèlement au trafic et l’expérience utilisateur se dégrade éventuellement, au fur et à mesure du temps, par des connexions simultanées.

Là où le problème se pose c’est lors de montée en charge rapide corrélée à un événement particulier par exemple une campagne publicitaire : passage TV, Black Friday, mise en vente de billet … Autant de circonstances où l’infrastructure est sur-sollicitée et où il devient compliqué, voire impossible, de naviguer sur un site.

Et cela peut, dans certain cas, anéantir tous les efforts consentis pour une opération commerciale avec l’impact ultime : le tunnel de vente inaccessible).

Les enjeux liés à ces moments “clés” de la vie d’un site sont cruciaux et représentent vite des sommes non négligeables :

  • Coût des développements
  • Coût des campagnes publicitaires (spots, bannières, relais presse, influenceurs …)
  • Perte sèche du CA

Pour éviter tout cela il faut être capable d’absorber les pics d’affluence et cela commence par connaître non seulement les limites de son infrastructure, mais plus encore de son application web. Et il n’y a qu’une solution pour y parvenir : les tests de charge. Il est important de faire la différence entre les tests de charge et les stress tests.

Pour simplifier :

  • Stress test : indique la capacité ou non d’une infrastructure à absorber un trafic donné. Ex: est-ce que mon site peut supporter 150 requêtes simultanées et dans quelles conditions techniques : % d’utilisation de la RAM, des I/O, charge du réseau, des frontaux, …
  • Tests de charge : permet de mesurer la qualité du ressenti de l’internaute derrière son écran ! Ex : combien de secondes mettront les internautes (par palier : 50/100/500/1000…) pour acheter un produit,  sachant qu’au-delà de 15s (par exemple) je perdrai le client. 

Les tests de charge permettent de contextualiser la qualité du ressenti de l’internaute et ne se contentent pas de métriques techniques. On parle de contexte car il ne s’agit pas seulement de savoir si 50 utilisateurs peuvent se connecter simultanément sur votre site, mais surtout si ces 50 utilisateurs vont pouvoir utiliser votre site dans de bonnes conditions. Et la nuance a toute son importance !

Un utilisateur qui peut se connecter et qui met 10 secondes à charger la moindre page et un utilisateur qui se voit renvoyer une erreur 503 à la même conséquence sur votre business : perte des commandes potentielles.

L’idéal, pour tout site internet, serait de pouvoir observer comment la qualité de la navigation est impactée en fonction du nombre d’utilisateurs. Cela permettrait de déterminer précisément le moment et surtout pourquoi, les conditions ne sont plus réunies pour une expérience utilisateur optimale. Et bien c’est justement à cela que servent les tests de charge !

Il est possible de construire des scénarios de montée en charge pour observer la réaction de l’infrastructure et de l’application au fur et à mesure de l’augmentation du nombre d’utilisateur.

Ex : Une montée progressive des connexions simultanées jusqu’à 800 internautes virtuels (courbe orange)  pendant 15 minutes (axe des abscisses) . 

Courbe tests de montée en charge CloudNerCare

Et c’est avec ce graphique et l’analyse qui en sera faite qu’il sera possible de déterminer le moment où la qualité de navigation des utilisateurs n’est plus suffisante. 

Dans notre exemple et très nettement à partir de la 6ème minute du test, avec 250 internautes virtuels simultanés l’on constate que l’infrastructure ne réussit plus à absorber la charge (courbe bleue). Par effet de bord, le temps d’accès à l’application (courbe verte) passe de 10 s à 30 s (axe des ordonnées) le tout générant des erreurs d’accès (courbe rouge en pointillée) .

Il doit être possible de rentrer dans le détail des requêtes gérées par le navigateur pour comprendre ce qui provoque cet effondrement des temps de réponses et les erreurs. 

Uniquement à la vue de ce graphe on peut conclure :

C1 – Le premier problème, qui en cache peut-être d’autres, vient de l’infrastructure
C2 – Cette application répond dans :

  • De très bonnes conditions d’utilisations jusqu’à 150 internautes  < 5 s (temps incluant les mesures)
  • De bonnes conditions d’utilisations jusqu’à 250 (Temps < 10s (temps incluant les mesures)

Actions à réaliser :

A1 – Comprendre la cause : frontaux, load balancer, réseau saturé, …
A2 – Réaliser les correctifs
A3 – Réaliser le TIR de puissance à ISO pour vérifier l’impact des correctifs.
A 4 – Réitérer le processus par paliers (1000/1500) jusqu’à la cible maximale envisagée (par exemple 2000 internautes ?)

Et c’est grâce à l’interprétation des résultats du test de charge qu’il est possible de déterminer comment absorber un pic d’affluence sur son site internet :

  • Travailler à la diminution du nombre de requêtes par utilisateur (commencer par-là !)
  • Mettre en place une page de débordement
  • Augmenter la capacité de l’infrastructure
  • Revoir la qualité du développement (IHM, Base de données) 

Pour voir tout ce qu’il est possible de faire avec une campagne de tests de charge nous ne pouvons que vous conseiller notre article détaillé sur le sujet.

Lors d’un pic d’affluence il y a finalement deux préoccupations à avoir : à partir de combien d’utilisateurs simultanés je ne peux plus garantir de bonnes conditions d’utilisation de mon site et que fais-je des utilisateurs qui ne pourront accéder à mon site ?

Le Graal est que 100% des utilisateurs puissent accéder au site dans de bonnes conditions, mais cela n’est accessible que pour les “géants” du web. Et il ne faut pas non plus oublier que, eux aussi, sont passés par là et que leurs applications et l’infrastructure nécessaire ont évolué conjointement avec leur trafic.

Les documents du monde du test

Les livres blancs
Lettre d’information Recevez l’actualité des tests