Les Indicateurs clés de performance pour les tests de charge




Il est facile de nos jours de saturer ou faire tomber une application sous une lourde charge. Se baser sur des temps de réponse et des mesures générées automatiquement par des outils de test de charge comme Loadrunner, JMeter, Neoload ou autres reste insuffisant, il faut donc aller au-delà de ces rapport pour trouver les problèmes de performances.

Dans cet article nous allons parler de l’utilisation des solutions dites APM (HP Diag JEE, Dynatrace, Introscope CA…) et ce qu’ils peuvent apporter en termes d’analyse dans le cas d’un problème de performance applicatif.

Au lieu de passer trop de temps dans les rapports de test de charge il vaut mieux se focaliser sur des indicateurs de performances clés à rechercher en passant par le Serveur WEB jusqu’à la base de données.

Voici une liste de ces indicateurs clés avec quelques points explicatifs sur leurs intérêts dans l’analyse.

Les métriques d’un serveur WEB

Sur un serveur WEB (Apache, IIS, …) les indicateurs suivants se sont révélées extrêmement précieux pour identifier les problèmes lors d’un déploiement :

a. Busy et Idle Threads
        besoin de plus de thread par serveur WEB
        besoin de plusieurs serveurs WEB
        Les threads sont occupés trop longtemps à cause des performances de l’application

b. Throughput
        Combien de transaction par secondes nous pouvons gérer
        A quel moment nous avons besoin d’ajouter plus de serveurs WEB

c. Bandwidth Requirements
        Le goulot d’étranglement se situe peut être au niveau du réseau
        Les pages sont trop lourdes
        Décharger le contenu aux CDNs

Les métriques d’un serveur d’application :

Sur un serveur d’applications (Java, .NET, PHP) voici quelques principaux critères afin d’identifier les problèmes de déploiement ou de configuration sur les serveurs d’applications :

a. Load Distribution
        Le nombre de transactions traitées par chaque moteur / PHP JVM / CLR?
        Sont-ils équilibrés en termes de charges (load balancing)?
        Avons-nous besoin de plus de serveurs d’applications pour gérer la charge?

b. CPU Hotspots
        Le nombre de processeur nécessaire pour un test de charge?
        Est-ce que la saturation de la CPU est causée par une mauvaise programmation ? Peut-il être fixé?
        Avons-nous besoin de plus de puissance CPU?

c. Worker Threads
        Le nombre de Worker Threads est-il correctement configuré?
        Les Worker Thread sont-ils occupés parce que les serveurs d’applications ne sont pas prêts?
        Y at-il des modules de serveur web qui bloquent ces Threads?

d. Problèmes de mémoire
        Constatons-nous un mauvais comportement de la mémoire? Avons-nous une fuite de mémoire?
        Quel est l’impact de Garbage Collector sur la CPU et le Transaction Throughput ?

Les métriques Host Health

Les serveurs Web et d’applications s’exécutent sur des hôtes physiques ou virtualisés. C’est pourquoi il est aussi important de faire un test de cohérence sur tous les hôtes qui sont impliqués.

Les indicateurs clés sont les suivants:

a. CPU, mémoire, disque, I / O
        Les ressources physiques ou virtuelles sur l’hôte sont-ils saturées?
        Les disques sont-ils saturés et inondés avec des fichiers journaux inutiles?
        Les problèmes sur les interfaces réseau?

b. Processes
        Quels processus s’exécutent sur cet hôte ?
        Qui prend les ressources d’autres processus ?

Les métriques applicatives

Le code de l’application exécuté doit également une attention importante (Profiling dynamique du code). La mesure clé est le temps passé dans chaque niveau logique individuel, car elle nous renseigne sur les niveaux sous charge ou pas :

a. Time Spent in Logical Tier / Layer
        Au niveau de quelle couche métier nous avons passé plus de temps en augmentant la charge ?
        Quelle couche métier estortionnelle à la charge?

b. Number of Calls into a Logical Tier
        Combien de fois les Web services internes sont-ils appelés?
        Combien de fois des API critiques sont-ils appelés (Hibernate, Spring, SharePoint, etc…)






A propos de l'auteur :



Veuillez respecter ces quelques règles avant la publication de votre commentaire :

- Aucun message à caractère raciste, xénophobe, pornographique, diffamatoire ou homophobe,
- Evitez le langage SMS et les majuscules utilisées de façon abusive,
- Pas de warez, pas de P2P, pas de lien de téléchargement illégal.
- Enregistrez-vous pour commenter sans avoir besoin de remplir les champs.

Cet espace est aussi le vôtre, respectez-le !