Création d’un groupe de discussion sur JMeter en français

Un billet pour vous annoncer la création d’un groupe de discussion sur JMeter et les sujets associés sur Google Groups.

Je suis l’initiateur du groupe, vous pouvez vous inscrire afin de participer au démarrage du groupe.

Ce groupe espère aider à l’assistance à l’utilisation de JMeter (tests de charges, stress, fonctionnel, performances, etc), les techniques (ou astuces) sur son utilisation et également les méthodologies de tests ainsi que l’analyse des résultats.

L’idée étant de progresser ensemble dans l’utilisation de JMeter.

L’adresse du groupe est : jmeter-fr@googlegroups.com, les archives sont lisibles par tout le monde, et il faut être membre pour envoyer des messages.

En espérant que ce groupe vivra longtemps et qu’il sera actif ! On compte sur vous !

Google Groupes
Abonnement au groupe JMeter en français
E-mail :

Visiter ce groupe

JMeter – Fixer la durée de répétition d’une requête

Vous utilisez JMeter pour faire un tir de charge (ou autres), et vous devez avoir une requête qui s’exécute à un interval fixe quelque soit le temps de réponse de la requête.

Par exemple, vous devez exécuter une requête chaque 20 secondes, le temps de réponse de la dite requête est 4,5 sec. Donc si on démarre à T0, on a T0+4,5 sec la requête, puis on demande à JMeter de faire une pause pendant (20 sec – 4,5 sec = 15,5 sec), puis une nouvelle requête, etc.

Schéma de répétition d'une requête à interval fixe

Voici comme le faire avec JMeter. Continuer la lecture de JMeter – Fixer la durée de répétition d’une requête

Livre eBook Performance Testing Guidance for Web Applications par Microsoft (en anglais)

Voici un très bon ebook en anglais, il s’agit d’un guide sur les tests de performances, proposé en téléchargement et gratuitement par Microsoft via son site CodePlex.

(titre en anglais : Performance Testing Guidance for Web Applications)

C’est un livre de 221 pages, découpé en 8 parties (pour un total de 18 chapitres) :

  1. Une introduction aux tests de performances, qui vous donnera un aperçu des différents types de tests de performances, les concepts clés et le vocabulaire utilisé.
  2. Une approche modèle sur le test de performance, à travers 7 macro activités. Cette partie montre également comment intégrer les tests de performances dans les environnements Agile et CMMI.
  3. Identification de l’environnement de test, qui montre comme collecter les informations nécessaires sur un projet à tester, allant des architectures systèmes au activités utilisateurs, etc. Continuer la lecture de Livre eBook Performance Testing Guidance for Web Applications par Microsoft (en anglais)

Compression HTTP, ou comment réduire le temps réseau dans les performances d’une application

Avec JMeter on peut faire des tirs de performances (et d’autres choses) pour une application Web. Pour qu’une application soit performante, il est préférable qu’elle soit développée judicieusement, mais également qu’elle s’exécute sur un environnement performant. Dans ce dernier, il ne faut pas négliger la composante réseau qui peut souvent devenir un goulet d’étranglement au niveau de l’utilisateur.

En effet, vous allez développer une application hyper véloce, la faire fonctionner sur des serveurs hyper-rapides, mais votre utilisateur au bout de la ligne vous dit que c’est lent…

Vous (re)faites vos tir de charges, vous mesurez les performances, c’est excellent… sur votre réseau local. Vous placez un injecteur chez votre utilisateur final, et là c’est la surprise… c’est lent.

Le diagnostic est rapide : trop d’octets à transférer pour afficher un écran, avec une bande passante trop petite donc lenteurs. Et impossible d’augmenter la bande passante. Que faire ? Continuer la lecture de Compression HTTP, ou comment réduire le temps réseau dans les performances d’une application

Redbooks : Linux Performance and Tuning Guidelines

Linux ayant une place importante dans mon utilisation informatique, il est bien normal d’être à l’affût de bons documents dessus. IBM via son site de publications Redbooks nous propose un excellent document sur les performances et l’optimisation de Linux (il s’agit en réalité d’une mise à jour d’un document déjà sorti en juillet 2007).

Redbooks : Linux Performance and Tuning Guidelines

Ce livre nous propose ainsi une large introduction au fonctionnement interne de Linux au niveau de la gestion des processus, les architectures mémoire (en particulier les différences entre systèmes 32 bits et 64 bits), les systèmes de fichiers (ext3, ext2, etc.), la gestion des entrées / sorties et la gestion du réseaux. C’est extrémement instructif.

La suite est un panorama des outils disponibles sur les distributions Linux pour la supervision et le benchmark. Chaque outil est expliqué, en particulier l’interprétation des données affichées.

Les deux derniers chapitres nous montrent d’une part les méthodes d’identifications des goulots d’étranglements (bootlenecks) au niveau CPU, mémoire, disques et réseaux. Et d’autre part des techniques d’optimisation de sa machine Linux (orienté serveur).

Pour résumé, ce document doit être une référence pour tout bon administrateur système qui s’occupe de serveurs Linux ou tout personne soucieuse (comme moi) des performances des bécanes !

Bon lecture.
./

Tir de charges : Quand les problèmes ne viennent pas du serveur d’applications

Pour les « grands » tirs de charges dont l’objectif est de tester une nouvelle application J2EE (ou JEE) avant sa mise en production, et afin d’éviter les crashs le jour du lancement, on mobilise en général une équipe des différents « corps de métier » informatiques.

On aura ainsi :

  • les « tireurs » ceux qui vont faire le tir de charges avec un outil dédié,
  • les fonctionnels qui assistent les tireurs pour la scénarisation du tir,
  • les préparateurs de données qui sont chargés de fournir des données aux injecteurs pour le tir,
  • les gens du réseau pour la surveillance du trafic et de la bande passante,
  • les DBA pour la surveillance de l’activité de la base de données,
  • les superviseurs des serveurs d’applications pour monitorer l’activité de l’application,
  • l’équipe de développement de l’application qui croisent les doigts,
  • et bien sur les chefs du fonctionnel et les chefs de la technique

Tout cela fait beaucoup de monde, on ajoutera en général un responsable général, chargé entre autre de synchroniser toutes les actions, et donner le GO du lancement.

Une fois que le tir lancé et terminé, l’expérience montre que c’est en général du coté du serveur d’applications J2EE que les problèmes sont visibles. Où s’ils ne sont pas visibles, on pense à lui en premier car c’est lui qui supporte l’application. Alors quand c’est vous le responsable de la supervision du cluster de serveurs d’applications, tout ce beau monde se retourne vers vous pour avoir l’explication, le comment du pourquoi, afin de comprendre la raison du non succès du tir de charge…

Pourtant vous avez fait une configuration des serveurs d’applications clustérisés aux petits oignons :

  • configuration de la taille minimum et maximum idéale pour ce type d’application
  • modification des paramètres de JVM pour avoir notamment un fonctionnement du Garbage Collector en (quasi) parallèle (Concurrent Mark Sweep)
  • réglage des unités d’exécution min et max, temps d’inactivité
  • réglage du pool de connexions à la base de données, avec activation du cache des requêtes SQL préparées
  • réglage du gestionnaire de sessions
  • activation du monitoring,
  • et d’autres petits réglages de derrière les fagots : taille des files d’attente TCP, nombre des requêtes keep-alive, etc

Alors avec ce tunning de folie, difficile de comprendre pourquoi le serveur d’applications souffre lors du tir de charges… Continuer la lecture de Tir de charges : Quand les problèmes ne viennent pas du serveur d’applications

[Tutorial] Superviser un serveur Tomcat avec JMeter

JMeter est un outil qui sait faire des petites choses sympas. La supervision d’un serveur Apache Tomcat par JMeter en fait partie.

JMeter à travers la servlet de statut fournie avec le serveur Tomcat peut afficher sous forme d’un graphique le nombre d’unités d’exécution actives, la mémoire JVM utilisée, et la charge (calculée) du serveur Tomcat. JMeter peut même le faire sur plusieurs serveurs Tomcat en même temps.

Voici donc un petit tutorial pour découvrir cette fonctionnalité de JMeter. Pour cela, on utilise un serveur Tomcat version 6.0 et un JMeter 2.3.

Bonne découverte.

[Tutorial] JMeter : faire un tir de charges par paliers et exploiter ses résultats avec Microsoft Access

Et voilà un nouveau tutorial sur JMeter. Il s’agit cette fois d’exécuter un tir de charges avec JMeter en utilisant des paliers de charges, c’est-à-dire que pour un même scénario, on va d’abord simuler une charge de N utilisateurs pendant une certaine période, puis après une période de montée en charges, nous simulerons N x 2 utilisateurs.

L’avantage d’un scénario par paliers est de permettre d’observer le comportement d’une application pendant une période « normale » et une période de « stress ».

Pour mieux voir son comportement, nous allons nous aider de Microsoft Access pour exploiter les temps de réponses enregistrés pendant le tir de charges, et ainsi générer rapidement un graphique. Ce dernier permettra une meilleure analyse du comportement, et sera beaucoup plus « sexy » dans un rapport de tir de charges.

Prêt à partir pour de nouvelles aventures JMeter ? Oui, alors Go sur cette page.