Archive pour novembre 2012

Optimiser une application JEE : mesurer l’impact sur un cas pratique (3ème partie)

3ème partie de notre saga performance.

Lors de notre dernier article, nous avons pu "faire sauter les verrous" en augmentant le pool de threads qui nous limitait le nombre de traitements simultanés dans la montée en charge. Attardons nous maintenant sur la JVM.

Nous n'allons pas perdre de temps dans le fonctionnement d'une JVM plusieurs articles sauront vous le rappeler très simplement comme le chapitre 3 de cet article qui traite de l'overhead, ou bien celui plus spécifique du fonctionnement de la JVM d'IBM J9.

Partant de cela, allons voir un peu comment la notre préfigure ...

Commençons par activer le port JMX sur notre serveur Glassfish pour introspecter avec un outil de monitoring (plusieurs existent comme JConsole inclue dans le J2SE, VisualVM ...).

Lire la suite de cette entrée »

Voici la présentation « Gestion des index SQL : Soyez AWARE ! » présentée au Poitou Charentes JUG


Pour ceux qui n'ont pas pu venir au Poitou Charentes JUG , voilà ma présentation « Gestion des indexs SQL : Soyez AWARE ! ».

Vous y apprendrez les bonnes pratiques sur les index SQL.
Pour cela, nous aborderons un minimum de théorie nécessaire, suivie d’un quiz afin de découvrir les bonnes pratiques d’utilisation des index.

Nous finirons par voir comment mettre en place tout cela dans un contexte applicatif.

Lire la suite de cette entrée »

Aliecom sera aware … au Poitou Charentes JUG !

 

Le 21 Novembre, Aliecom au Poitou Charentes JUG

Une fois de plus, ce sera Antonio qui cette fois démontrera que Jean-Claude ne dit pas que des bêtises...  Et à défaut d'y aller, soyez patient, la vidéo arrivera dans la foulée.

 

Ici le lien de présentation sur le site du Poitou Charentes JUG

 

Avec un petit avis personnel sur cette présentation : une fois n'est pas coutume, on ne parlera pas de sujet en vogue comme le Big Data, le Map Reduce et autres frameworks à la mode ... mais simplement d'un sujet qui touche directement ou indirectement un bon nombre d'ingénieurs au quotidien,  et qui mérite donc de s'y (re)sensibiliser. Très didactique avec son approche des bonnes pratiques sous forme de Quiz !

Optimiser une application JEE : mesurer l’impact sur un cas pratique (2ème partie)

2ème volet de notre analyse de performance :

Après avoir revu les niveaux de logs de notre serveur d'application en 1ère partie d'analyse et en avoir mesuré l'impact du correctif sur le temps de réponse, il est maintenant temps de s'approcher de notre objectif initial : rendre stable l'application avec une moyenne de 1000 utilisateurs actifs simultanés.

On va donc augmenter notre charge et passer de 40vu à 300vu :

Reprenons notre scénario JMeter, augmentons le nombre de threads de 40 à 300 avec un ramp-up de 1 utilisateur supplémentaire toutes les 2 secondes (ce qui laisse suffisamment de temps au serveur pour gérer ses nouvelles allocations de Context Http) :

Lire la suite de cette entrée »

Optimiser une application JEE : mesurer l’impact sur un cas pratique (1ère partie)

Depuis un certain temps, on vous propose plusieurs articles allant d'une démo avancée d'un outil de performance, jusqu'à des mises en situation poussant l'analyse de fuites mémoires dans ses retranchements.

Nous allons vous proposer un cas pratique, décrivant une intervention d'audit de performance, l'histoire d'une application critique pour laquelle on déplore de gros problèmes de performances.

Partant de ce postula, nous allons tenter de vous proposer une approche méthodique par laquelle nous aborderons chaque étape comme des étapes significatives dans l'augmentation de gains en performance.

Lire la suite de cette entrée »

Aliecom recrute des Consultants Performance !

Aliecom recherche actuellement à renforcer ses effectifs de consultants spécialisés dans la performance des infrastructures et applications.

Cette spécialité étant encore relativement peu développée..., nous sommes ouverts à tous types de profils (chef de projets Java, ingénieurs systèmes ou serveurs d'applications, architectes, etc.) que nous pourrons former en interne.

Poste et missions :

Vous interviendrez auprès de nos clients majoritairement grands comptes (Voyages SNCF, GDF Suez, SFR, ERDF, etc..) pour la qualification technique de leurs architectures et applications critiques :

  • Phases de cadrage des campagnes de tests techniques.
  • Ecriture des scénarii / scripts avec HP LoadRunner ou autre, et mise en place des monitorings applicatifs (systèmes, réseaux, jmx...).
  • Coordination des phases de tests et d'analyses en relation avec les différents experts (architectes techniques, ingénieurs d'exploitation, ingénieurs réseaux, experts bases de données…).
  • Analyse détaillée, aide aux optimisations techniques (architecture logicielle et matérielle).
  • Synthèse et restitution des résultats des benchs aux différents interlocuteurs (chefs de projets, architectes, équipe tests de charge…).
  • Vous serez rattaché(e) au responsable de direction technique, ou responsable qualité logicielle.

Lire la suite de cette entrée »

Voici la présentation « Test de charge avec Apache JMeter » présentée au YAJUG

Pour ceux qui n'ont pas pu venir au YAJUG et qui ne veulent pas attendre la vidéo, voilà ma présentation « Test de charge avec Apache JMeter » en français.

Vous y apprendrez comment mettre en place une campagne de test de charge à l'aide de JMeter.
Pour cela, nous verrons comment générer une charge réaliste et controllée.
Puis la mise en place d'une supervision efficace à l'aide de JMXTrans.
Et nous finirons sur l'analyse des résultats à l'aide de QlikView.
En bonus on verra quelques cas d'utilisations avancées de JMeter.

OutOfMemoryError Java, que faire ?

Introduction

Un des atouts (ou inconvénient pour certains) de Java est qu'il n'y a pas à s'occuper de la libération de la mémoire grâce au Ramasse Miettes (Garbage Collector).

Malgré cela, nous ne sommes pas à l’abri de fuites mémoires (la fameuse exception OutOfMemoryError).

Pour pallier à ce problème, le moyen le plus simple est de faire un arrêt/relance de l'application. Solution que je déconseille d'utiliser, car en plus du problème de performance, s'ajoute le problème de disponibilité de l'application pour les clients.

Plus globalement, sans vouloir être puriste, nous n'avons pas d'autres choix que de corriger l’OutOfMemoryError, que cela soit un mauvais paramétrage de la JVM et/ou une fuite mémoire.

L'objectif de cet article est de comprendre comment apparaissent les OutOfMemoryError.
Lire la suite de cette entrée »

Mots-clés
RSS Feed