Les Trois Piliers de la Testation de Charge
Sommaire
débutant - This article is part of a series.
Dans cette entrée, nous discutons des “trois piliers” de la détection du chargement.
Les trois piliers de la testostérone sont : Capacité de traitement, Temps de réponse et Utilisation. Ces trois indicateurs méritent d’être pris en compte lors de la conception efficace des tests de performances et pour une interprétation correcte des résultats.
Remarque: en anglais, “la charge de test” est connue sous le nom de “Charge de Test ou LT”, qui sera utilisé dans cet article.
Définitions #
Nous commençons par définir un terme qui identifie l’environnement dans lequel l’application exécute. Ce terme en anglais est connu sous le nom de System Under Test ou SUT. Généralement, SUT désigne une ensemble de composants organisés souvent en plusieurs couches matérielles, chacune effectuant une fonction spécifique. Par exemple : serveur d’application, serveur web, etc.
Capacité de Traitement (en termes anglais: Throughput): une proportion ou un rapport qui représente le nombre d’activités effectuées dans un intervalle défini. Par exemple, les opérations par minute. Dans le cas de JMeter, la Reporteur des écouteurs fournit l’average throughput pour toutes les transactions et individuellement pour chaque une.
Réponse au temps (en anglais: Temps de réponse): est une quantité qui représente le temps écoulé entre la soumission d’un transaction par l’utilisateur et leur réception complète. Dans le cas de JMeter, le Report Summary des Listeners également rapporte le temps moyen de réponse pour les transactions totales et individuellement pour chaque une.
Usage (en utilisant le terme en anglais : Utilisation : une pourcentage qui représente la quantité de ce ressource occupée par l’SUT (CPU, mémoire, I/O, etc) à un moment spécifique.)
JMeter ne rapporte pas directement la Utilisation; il est nécessaire d’installer le plugin Performance Monitoring et de lancer le agent perform-agent sur la SUT. Une alternative plus efficace consiste à utiliser un Application Performance Management (APM). Par exemple, New Relic, Dynatrace, etc.
Perspective Graphique #
Le graphique montre les trois métriques en fonction de la charge créée par les utilisateurs concurrents. En d’autres termes, les augmentations de la charge directement impactent le throughput, la réponse du temps et l’utilisation. Initialement, cette relation est plus ou moins linéaire (Charge modeste). Progressivement, les augmentations ultérieures de la charge qui transforment la relation en non-linéaire (Zone d’âpreté et Buckle).
Un exemple de cette approche non linéaire est la saturation du CPU lorsque le nombre de processus dépasse le nombre de processeurs (Utilisation). La Temps de réponse augmentera progressivement avec l’attente des autres processus pour les opportunités d’exécution, et donc la Throughput diminuera également progressivement.
Cette notion, bien entendu contra-intuitive, est essentielle pour concevoir une charge efficace et correctement interpréter les résultats.
Utilisations Pratiques #
Un usage pratique de ces trois mesures est d’interpréter les résultats d’une épreuve de charge. Pour une certaine quantité de VUsers, la Rapport Summary dans le Rapport Summary montre un mélange de Throughput et de Response Time, mais sans information sur l’utilisation correspondante il n’y a pas de moyen de déterminer quelle zone du graph (en haut) les résultats se trouvent. Ils pourraient être situés dans la zone d’une charge modérée, où le milieu peut être trop configuré ; ou bien si les résultats sont dans la zone d’un chargement cassant, une augmentation abrupte de load provoquerait des résultats inacceptables, probablement parce que la capacité du SUT est à son maximum.
Autre utilisation pratique concerne la spécification des exigences ou objectifs pour LT. Il est courant d’indiquer les exigences d’une LT uniquement en termes de nombre de utilisateurs (VUsers). Cette exigence est incomplète car le nombre réel d’utilisateurs que l’un des applications peut soutenir n’est pas connu avant la réalisation. Une exigence plus claire devrait être accompagnée de détails sur le chargement, en particulier la fréquence avec laquelle chaque composant du chargement est exécuté ; c’est-à-dire l’attente attendue. De même, la réponse correspondante pour chaque composant de SUT est particulièrement pertinente. Enfin, spécifier le niveau d’utilisation pour chaque composant de SUT indique la consommation souhaitée des ressources matérielles.
Concluison #
Les trois piliers de la test d’efficacité sont essentiels pour concevoir des tests d’efficacité et interpréter correctement les résultats. Ce qui est important c’est que ces trois mesures fournissent contexte au phase de requêtes, de conception et d’interprétation des résultats.