Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Java > Développement Web en Java > Tomcat

Réponse
 
Outils de la discussion
Vieux 31/07/2008, 18h27   #1 (permalink)
Membre du Club
 
Date d'inscription: mars 2008
Messages: 81
Par défaut Problème de performances sous Tomcat

Bonjour,

J'ai mis en place une application J2EE que j'ai livré aux utilisateurs. Ces derniers me remontent régulièrement des problèmes de lenteurs d'exécution de l'application. Je dois donc trouver une solution à ce problème !

Je vous demande donc de m'y aider en m'indiquant qlq pistes à suivre ou les causes classiques qui pourraient être la cause de ce problème.

Je vous remécie d'avance !
mrjeronimo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 31/07/2008, 18h33   #2 (permalink)
Membre Confirmé
 
Avatar de Philcmoi
 
Date d'inscription: juillet 2006
Localisation: Paris
Âge: 37
Messages: 200
Par défaut

tu utilises quel framework ?
tomcat notammant la version 6 est tres bien, c'est peut être le pc qu'est lent.
Utilise tu des requette sql, hibernate, jpa ???
Tu pourrais en dire plus. Merci et à plus.
Philcmoi est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 31/07/2008, 18h47   #3 (permalink)
Membre éclairé
 
Avatar de djsnipe
 
Date d'inscription: mai 2008
Messages: 393
Par défaut

Oui il y a beaucoup de causes possibles qui rendent une application peu performante, et seul un vrai audit te permettra de les trouver. Dans les gros trucs à voir :

Infrastructure : un petit monitoring des ressources pour vérifier entre autres : le CPU, la charge réseau, l'utilisation mémoire

JVM : monitoring de l'activité du garbage collector

Application : le nombre de méthodes synchronized (sans rire, j'ai vu une appli une fois ou un traitement utilisé partout était synchronisé pour rien, on a fait x4 sur les perfs en une ligne de code), les i/o en général (fichiers, base de données) pour vérifier la taille des flux (est-ce que les logs sont en debug par exemple, générer des Mo de log est très très couteux), le coding devra être vu plus tard.

BDD : si il y en a une, le serveur est-il bien configuré, un petit monitoring de l'activité aidera, les index sont-ils présents .... La taille du pool de connexion BDD dans l'appli est-il suffisamment grand ? ...

Au final, une petite analyse avec un profiler permettra de traquer les bouts de code chronophages et de déterminer au mieux si c'est l'activité BDD qui pèche, ou seulement le CPU de la machine !

==> Oui c'est un sacré boulot !
djsnipe est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 31/07/2008, 18h53   #4 (permalink)
Membre Confirmé
 
Avatar de Philcmoi
 
Date d'inscription: juillet 2006
Localisation: Paris
Âge: 37
Messages: 200
Par défaut

re djsnipe
Philcmoi est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 31/07/2008, 19h25   #5 (permalink)
Membre chevronné
 
Date d'inscription: juin 2008
Messages: 643
Par défaut

Peut être commencer par identifier le type de requête et mettre en place des outils de suivi des performances pour savoir dans quelle direction partir.
- W
wiztricks est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 11h23   #6 (permalink)
Membre du Club
 
Date d'inscription: mars 2008
Messages: 81
Par défaut

Bonjour,

Je vous remércie tous pour vos réponse.

Mon appli est construite selon le model MVC 1 (JSP & Servlet + qlqs classes métiers), il n'y a pas de mapping O/R, une seule classe se charge de tous les accès BD et elle contient ttes les requêtes SQL utilisées.

Le SGBD utilisé est MYSQL avec presque aucune configuration (sauf le pool=25).

Peut-on déjà identifier qlqs causes à partir de ces infos?

Merci d'avance !
mrjeronimo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 12h06   #7 (permalink)
Membre éclairé
 
Avatar de djsnipe
 
Date d'inscription: mai 2008
Messages: 393
Par défaut

On peut identifier des causes possibles, mais pas en être sur.
Vérifie le code d'accès à la BDD, l'utilisation d'un pool de connexions ... mais au final, si ton appli tourne sur une machine avec un CPU déjà surchargé par plein d'autres choses, ton code n'est pas à incriminer.
djsnipe est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 13h20   #8 (permalink)
Membre du Club
 
Date d'inscription: mars 2008
Messages: 81
Par défaut

Merci encore,

Très bien donc, j'essaierai de faire une petite analyse de ces différents paramètres pour bien identifier la sources des problèmes.

Une dernière question, que pensez vous de Tomcat coté performance, d'autres serveurs d'applications sont-ils plus performants?

merci d'avance !
mrjeronimo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 13h51   #9 (permalink)
Modérateur
 
Date d'inscription: septembre 2007
Âge: 29
Messages: 2 873
Par défaut

tomcat n'ayant qu'un role très minim à jouer (recevoir la requete, la dispatcher), à moins d'avoir besoin de traiter plusieurs miliers de requetes à la seconde, il y a peu de chance qu'il influence ta webapp (genre cout de tomcat dans chaque requte doit probalbement etre inférieur à 1%)
__________________
Journaux de développement
Apprenez a poser vos questions, si vous voulez que j'y réponde!
Pas de Stacktrace, pas de chocolat!
Questions techniques en privé lettre morte
tchize_ est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 15h26   #10 (permalink)
Membre du Club
 
Date d'inscription: mars 2008
Messages: 81
Par défaut

Merci pour la reponse !

Je vois, personnellement je croyais que, le serveur d'application, ayant pour role (entre autre) d'instancier les classes de l'application (servlet, classes metiers ...) pouvait jouer un rôle dans l'amélioration ou la déterioration de la performance d'une application.

Il semblerait que ce n'est pas le cas j'écarte donc cette piste.

j'essaierai de voir du coté de mon code, peut être que le problème y réside, j'envisagerai probablement de passer ç une architecture plus modulaire (MVC2) et d'utiliser le mapping O/R (Hibernate). Le problème c'est que je n'ai pas une idée claire sur les améliorations que de telles modifs pourraient apporter.

Pour ce qui est des capacités du serveur d'hebergement, il est dans les normes (pentium III; 1GHz, 1Go ...)
mrjeronimo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 15h34   #11 (permalink)
Membre éclairé
 
Avatar de djsnipe
 
Date d'inscription: mai 2008
Messages: 393
Par défaut

Citation:
Envoyé par mrjeronimo Voir le message
Pour ce qui est des capacités du serveur d'hebergement, il est dans les normes (pentium III; 1GHz, 1Go ...)
Serveur dédié ? dédié à cette application ? Suffisamment taillé compte tenu de l'application et de son nombre d'utilisateurs ?
Non vraiment, sans faire des tests de performance et en monitorant les différents indicateurs (CPU, ....) tu ne pourras pas savoir d'où vient le problème.
djsnipe est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 01/08/2008, 16h37   #12 (permalink)
Membre du Club
 
Date d'inscription: mars 2008
Messages: 81
Par défaut

tout à fait,

je commencerai donc par une analyse avec monitoring de mon appli afin de détecter la source exact des problèmes, avn de me lancer dans la recherche de la solution.

Merci bcp pr votre implication !
mrjeronimo est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Java > Développement Web en Java > Tomcat

 
Offres d' emploi informatique sur Lesjeudis.com


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide