Tests de charge

Réaliser des tests de charge simulant au mieux le comportement des utilisateurs et de l’infrastructure, et réaliser une analyse très fine des résultats

La suite logique des tests de profiling dynamiquebenefices tests de charge

Le profiling dynamique a pour objectif de déverminer l’application et son infrastructure de manière unitaire. Il permet une analyse très fine du fonctionnement de l’application et de l’infrastructure, analyse impossible à réaliser via un test de charge.

Il est néanmoins nécessaire après cette phase de profiling de vérifier le comportement en charge de l’application afin :

  • de détecter des failles pouvant entraîner des indisponibilités de l’application
  • de contrôler l’évolution des temps de réponse en fonction du nombre d’utilisateurs
  • de détecter d’éventuelles fuites mémoire
  • de vérifier la stabilité de la chaîne applicative au cours du temps
  • de contrôler la consommation de ressources et d’en déduire le dimensionnement idéal en production
  • de déterminer le nombre maximal d’utilisateurs

A la différence du profiling dynamique, ces tests nécessitent l’écriture et la variabilisation de scripts exécutés par un outil d’injection.

La valeur ajoutée MIXCOM

Les tests de charge tels qu’ils sont couramment pratiqués présentent deux défauts majeurs :

  • Ils ne simulent pas les conditions réelles de l’environnement opérationnel.
  • L’analyse des problèmes rencontrés reste superficielle. Par exemple, une charge CPU à 100% sur un serveur peut être liée à un cache inopérant ou un flux anormal de messages saturant un compresseur. Une analyse incomplète pourra amené le client à réaliser un upgrade matériel et logiciel coûteux, alors qu’une simple modification de paramétrage aurait été suffisante.

Des tests mal préparés ou des résultats mal analysés peuvent engendrer des conséquences désastreuses :

  • Mauvaise tenue à la charge en environnement opérationnel
  • Upgrades (CPU, mémoire) réalisés alors que non nécessaires

Nous attachons donc une grande importance à :

  • Simuler au mieux le comportement des utilisateurs et de l’infrastructure. Nous pouvons être amenés à simuler le WAN par exemple afin de tester les différents composants en cas de congestion. Nous utilisons par ailleurs la connaissance du comportement de l’application acquise au cours du profiling pour adapter au mieux les scenarii.
  • Chercher les causes réelles des limitations ne permettant pas d’atteindre le nombre d’utilisateurs cible. Par exemple, en cas de saturation CPU, nous rechercherons la cause première de cette consommation de CPU qui peut elle-même s’avérer la conséquence du comportement anormal d’un des composants de l’infrastructure.

Démarche et outils

Une campagne de tests de charge requiert les étapes suivantes:

  • Elaboration du plan de tests
  • Réalisation des scripts et variabilisation
  • Instrumentation pour la collecte des résultats
  • Exécution des différents types de tirs (tir à blanc, tir à charge nominal, tir de stress, tir de robustesse, tir aux limites, etc.)
  • Analyse des résultats
  • Rédaction et présentation d’un rapport

Afin de pouvoir réaliser des analyses de très haute qualité et en particulier déterminer les causes réelles des problèmes rencontrés, nous instrumentons l’application et l’infrastructure de bout en bout et utilisons notre outil d’analyse et de corrélation OptimIS.

Selon vos souhaits nous pouvons :

  • réaliser tout ou partie de ces étapes.
  • utiliser vos outils d’injection déjà en place ou mettre en œuvre nos propres équipements.

Exemples de besoins adressés
  • Développement d’une application critique ou d’une nouvelle version d’application
  • Benchmark d’un progiciel
  • Changement au niveau infrastructure: changement de serveurs, virtualisation, passage au cloud computing, etc.
  • Mise en évidence de problèmes de fuite mémoire
  • Dimensionnement d’application et d’infrastructure

Comments are closed.