Archive pour la catégorie 'Performance'

Bilan année 2008

Lundi 29 décembre 2008

En fin d’année, il est de coutume de faire le bilan. Je vous propose donc de partager différents points de vue « bilan de fin d’année », le tout étant totalement subjectif, non-exhaustif et basé sur mon seul vécu. Lire le reste de cet article »

[Tutorial] Effectuer un test de charge distribué (distributed testing) avec JMeter

Dimanche 21 septembre 2008

Cela fait longtemps que j’aurais dû le faire, et bien c’est fait.

Voici donc un petit tutoriel qui donne la démarche pour faire un test de charge distribué avec JMeter.

L’intérêt principal pour ce type de test, est que la charge à produire par JMeter pour simuler ses utilisateurs virtuels est répartie sur plusieurs machines JMeter. Cela évite ainsi les problèmes de saturation de bande passante du JMeter, de surcharge CPU, mémoire, etc quand vous simulez un très grand nombre d’utilisateurs.

Ce tutoriel donne aussi quelques bons conseils pour réaliser ce type de tir.

Bons tests !

./

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

Samedi 30 août 2008

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

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

Vendredi 1 août 2008

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. Lire le reste de cet article »

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

Dimanche 6 juillet 2008

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 ? Lire le reste de cet article »

Petit tutorial sur la jmeterisation d’une requête de tir de charges d’un WebService via SOAP avec JMeter

Dimanche 18 mai 2008

Tout est dans le titre !

Par curiosité j’ai testé la fonctionnalité de requêtage de JMeter sur les WebServices avec SOAP. Voici un petit tutorial du résultat.

./

Redbooks : Linux Performance and Tuning Guidelines

Jeudi 1 mai 2008

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.
./

Article JMeter sur l’élément HTML Link Parser

Samedi 5 avril 2008

Et voilà l’article sur le composant HTML Link Parser de JMeter. Comme promis.

Cette page vous permettra de mieux comprendre cet élément, et j’espère de l’utiliser dans vos scénarios.

./

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

Vendredi 21 décembre 2007

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… Lire le reste de cet article »

[Tutorial] Superviser un serveur Tomcat avec JMeter

Samedi 1 décembre 2007

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.