Passage à 4 Go de RAM avec Windows Vista 64 bits

Pour faire suite à cet article, voici le résultat de mon passage de 2 Go de RAM à 4 Go de RAM sur un ordinateur portable Dell D820. C’est une demi-satisfaction. En effet, les 4 Go de RAM sont bien reconnus au niveau du BIOS du portable, mais il y a seulement 3327 Mo de disponibles, les 700 Mo restant sont « réservés pour le système » d’après ce même BIOS. Vista montre donc seulement 3,13 Go.

4 Gb onlyy 3,3 Gb use

(d’après que ce j’ai compris) La cause du problème vient du chipset Intel 945 (se trouvant dans le D820) qui peut gérer seulement 4Go d’adressages mémoire maximum. Malheureusement ces « 4Go d’adresses » doivent être partagés par la mémoire vive du système d’exploitation et aussi par la mémoire vidéo (car la carte graphique est embarquée sur la carte mère) Continuer la lecture de Passage à 4 Go de RAM avec Windows Vista 64 bits

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.

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.

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

100% CPU explorer.exe sur Vista après une recherche dans le menu Démarrer

Avec mon Vista, j’avais un problème embêtant et difficile (pour moi) à supporter. De temps en temps j’avais la consommation de mon processeur à 100% sur le processus explorer.exe. Bizarre.

Quand je regardais sur le moniteur de ressources Vista (nouvel outil bien pratique accessible depuis le gestionnaire des tâches), je voyais que le processus explorer.exe qui utilisait 100% CPU, lisait des fichiers sur mon répertoire utilisateur (mon home directory), en particulier mes workspaces Eclipse (plein de petits fichiers java).

Au début, je me suis dit que c’était l’indexation des fichiers, et j’ai donc réduit le périmètre d’indexation pour notamment exclure mes workspaces Eclipse. Mais les 100% CPU continuait, même sur les fichiers exclus de l’indexation…

D’autant que même en utilisation sur batterie (j’ai un portable), j’avais le 100% CPU !

J’ai enfin trouvé la solution.

Continuer la lecture de 100% CPU explorer.exe sur Vista après une recherche dans le menu Démarrer

SAP Memory Analyzer : voilà un vrai outil pour analyser des Heap Dump Java !

Vous avez développé une application JEE, et depuis son passage en production au moins une fois par jour il y a une erreur Java « OutOfMemoryError ». La première réaction a été de dire : mauvaise configuration de la taille maximale de la JVM… vous avez préconisé 1Go de Max Heap Size, cela n’a pas fonctionné, l’erreur OOME arrive encore… Alors on est passé à 2Go… Toujours l’erreur d’OOME… Aie, et que faire…

Quand vous êtes à ce point, vous pouvez être certain que vous avez une fuite de mémoire (memory leaks) quelque part. Oh, ce n’est pas que vous êtes un mauvais développeur 😉 et que vous ne savez pas bien gerer la mémoire, en effet, parfois un problème de fuite de mémoire peut survenir à cause d’une fonctionnalité activée du serveur d’applications de production et qui rentre en « conflit » avec une brique de l’application. (Je citerai un exemple vécu : le cache (activé) JDBC de la source de données WebSphere 5.1 et un framework maison de mapping O/R)

Quand on a un problème d’OutOfMemory, on commence souvent par activer le mode verbeux du Garbage Collector (GC), c’est une très bonne idée, cela permet d’avoir une petite idée sur le déroulement du problème de mémoire (on peut utiliser l’outil Extensible Verbose Toolkit d’IBM pour ce travail, cf références). Cependant c’est insuffisant pour trouver la cause du problème. Quelques recherches sur Internet vous apprennent qu’il est possible d’avoir une image de la mémoire Java avec la génération d’un « heap dump », ensuite il suffit de l’analyser pour trouver la cause de la fuite de mémoire. Facile à écrire, mais dur à faire…

Continuer la lecture de SAP Memory Analyzer : voilà un vrai outil pour analyser des Heap Dump Java !

[Tutorial] Variabiliser un test de charges JMeter

Voici un nouveau tutorial sur JMeter. L’objectif de ce tutorial est montrer comment il est possible de variabliser les données saisies dans un formulaire HTML. C’est-à-dire de faire en sorte qu’à chaque exécution du scénario de tir de charges, les données saisies « changent ».

La variabilisation permet de faire par exemple des tirs de charges orientés « fonctionnels ». On peut ainsi imaginer un tir de charges qui serait plutôt l’exécution de cas de tests d’une application, permettant de vérifier que un traitement fonctionnel est correct. On peut même penser à des tests de non-régressions.

Pour découvrir ce tutorial sur la variabilisation, il faut voir cette page.

Bon courage dans vos aventures JMeter.

Bureautique, nouvelles suites et format ouvert : Des changements ?

Le monde de Word, Excel et Powerpoint est-il en train de changer ? Est ce que les utilisateurs vont-ils enfin employer le terme « traitement de texte » au lieu de « Word » pour parler du logiciel qu’ils utilisent pour leurs documents ?

Depuis quelques temps, des alternatives à la suite Office de Microsoft font parler d’eux :

  • On entend parler d’OpenOffice : à travers une enquête sur le site Journaldunet pour identifier des personnes / structures qui ont migrées vers OpenOffice ; à travers une interview de la responsable francophone du projet ; à travers différents articles d’astuces sur les logiciels composants OpenOffice sur des grands sites web informatiques.
  • On entend aussi parler de Google Apps, c’est plus orientée entreprise ; à travers l’annonce du support de Cap Gemini de cette solution ; à travers son insertion du nouveau module Présentation.
  • Dernièrement, une nouvelle suite, Lotus Symphony de l’éditeur IBM, à travers l’annonce de sa sortie en version gratuite (et bêta et en anglais).
  • On parle toujours de la suite Office aussi. Mais plutôt à travers le prisme de ces nouvelles alternatives, ou bien pour dénoncer l’une des « vaches à lait » de l’éditeur.

Loin de moi de vouloir déterminer quelle est la meilleure solution. L’interrogation est plutôt : Est-ce que ces nouvelles suites vont changer la donne de manière importante ? Ou bien profite-t-elle du vent « format ouvert » qui souffle sur le monde de la bureautique ?

Continuer la lecture de Bureautique, nouvelles suites et format ouvert : Des changements ?

[Tutorial] Faire un test de charges d’un site Web avec Apache JMeter

Apache JMeter est un sous-projet Jakarta de la fondation Apache. C’est un outil permettant de faire différents tests de charges et de mesures de performances sur plusieurs types d’environnements. Allant ainsi du serveur Web au serveur FTP, base de données à travers JDBC, Middleware JMS, annuaire LDAP, connexion TCP, SMTP, etc…

C’est un outil (d’après mon expérience) robuste, fiable et qui sait faire pas « mal de choses », mais malheureusement, bien que l’interface IHM soit graphique (via swing), sa convialité n’est pas son point fort. Parfois pour faire quelque chose, il faut se creuser un peu la tête. Mais qui a dit que l’informatique c’était facile ?

Donc, JMeter peut nous aider si on veut tester la tenue de charge d’un site Web, il peut simuler des « utilisateurs virtuels » (VU) et exécuter en boucle un scénario fonctionnel au préalablement enregistré. Il mesure les temps de réponses du site Web, et permet ainsi d’avoir une idée sur sa tenue en charges.

Je vous propose un petit tutoriel pour apprendre à manipuler JMeter afin de faire un test de charge d’un site Web modèle (ici les servlets d’exemples livrées avec Tomcat 5.5).

La réalisation d’un tir de charges se faisant en étapes, voici le programme :

  1. Introduction

  2. Préparer son scénario fonctionnel

  3. « Jmeteriser » son scénario fonctionnel

  4. Affinage du scénario de tests

  5. Exécuter son scénario de tir de charges

 

A noter, que je compte ajouter d’autres tutoriels / articles autour de JMeter prochainement.