Archive for the ‘Performance’ Category.

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. Continue reading ‘JMeter – Fixer la durée de répétition d’une requête’ »

Flattr this!

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. Continue reading ‘Livre eBook Performance Testing Guidance for Web Applications par Microsoft (en anglais)’ »

Flattr this!

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 ? Continue reading ‘Compression HTTP, ou comment réduire le temps réseau dans les performances d’une application’ »

Flattr this!

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

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.

./

Flattr this!

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

Flattr this!

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

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.

./

Flattr this!

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… Continue reading ‘Tir de charges : Quand les problèmes ne viennent pas du serveur d’applications’ »

Flattr this!

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

Flattr this!

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

Flattr this!

Découverte de la semaine : Un Core 2 Duo est 64 bits !

Bon… j’ai eu l’impression de découvrir l’informatique cette semaine. J’ai compris, ou plutôt appris qu’un processeur Intel Core 2 Duo possède les extensions EM64T afin de fonctionner en mode 64 bits au lieu du mode 32 bits.

Avant, je pensais que les processeurs Intel à part les Itaniums étaient des processeurs 32 bits seulement. Et que AMD avait développé ses propres processeurs 64 bits (les fameux AMD 64 bits). Ensuite, on avait Microsoft qui a mis en place une version 32 bits de Vista et une version 64 bits de Vista pour répondre à Intel et à AMD. Pour finir, l’acheteur avait le choix entre, soit un ordinateur Intel et donc un Windows Vista 32 bits, ou soit un ordinateur AMD avec un Windows Vista 64 bits.

J’avais même la vision qu’un Windows Vista 64 bits était moins ‘bien’ qu’un Vista 32 bits car c’était associé dans mon esprit à un prix d’achat d’ordinateur moins cher (les processeurs AMD étant moins chers que ceux d’Intel). (Et aussi du certainement à l’effet « Oracle » qui dit que si on prend la base de données Oracle on fait toujours le bon choix de base de données malgré son prix excessif).

Rendons à César, ce qui est à César.

Continue reading ‘Découverte de la semaine : Un Core 2 Duo est 64 bits !’ »

Flattr this!