Load testing #1 – Répartition de charge
Le tir de charge (ou Load Testing) est une manière simple pour mettre en évidence des défauts dans le fonctionnement d’une application.
En stressant l’application, nous pouvons provoquer les facteurs limitants en cas de forte charge.
Pour cela, nous nous appuyons sur deux outils très complémentaires :
- Octoperf pour sa capacité rendre user-friendly JMeter et a généré du trafic depuis différents points dans le monde ;
- Performance Vision pour sa capacité à analyser les usages réseau.
Cas d’usage
Le tir de charge débute à 16:52 et se termine à 17h46.
- Flux Clients <-> Serveur Web
On constate une augmentation importante du temps de réponse serveur au cours du temps.
Les pics importants de temps de réponse correspondent à un nombre de transactions qui diminue :
Conclusion : Le temps de réponse augmente de façon importante mais le serveur Web ne cède pas malgré la charge.
- Flux Apache <-> Serveurs Applicatif
On constate de grosses fluctuations de temps de réponse applicatif pour le serveur 1 :
Et pour le serveur 2 :
Sur le graphe suivant est affiché le nombre de transactions par hôte Applicatif, on observe un dysfonctionnement de la répartition de charge à 17h11 puis à partir de 17h20 :
C’est répartition de charge en « yo-yo » est bien visible sur le graphe suivant qui représente le pourcentage total de transactions par hôte Java :
On peut également corréler temporellement les retransmissions clientes qui coïncident précisément avec le moment où un serveur Applicatif traite 90 à 100% du trafic :
Conclusion : La répartition de charge entre les deux serveurs Applicatifs s’est mal passée, chacun des serveurs absorbant à tour de rôle l’intégralité du trafic. Cela a pour conséquence un effondrement des performances globales.
Conclusion
C’est en menant une analyse transverse, à la fois orientée application et infrastructure que le combo gagnant Octoperf et Performance Vision prend tout son sens.
N’hésitez pas à contacter nos experts pour échanger sur vos problèmes de performance.