Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1248 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Résolu] Paramétrer le "Java heap space" sur Tomcat

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Paramétrer le "Java heap space" sur Tomcat

n°1806808
lsdYoYo
gravity powered
Posté le 31-10-2008 à 11:23:34  profilanswer
 

Je maintiens une appli sur serveur Windows 2003 + Apache-Tomcat. Depuis quelques temps, probablement avec l'augmentation des connections, des erreurs apparaissent au chargement des pages web. Sans compter des temps de chargement très long.
 
Les fichier stdout*.log généré par le serveur font apparaitre de nombreux messages :

13/10/08 08:27:31 expandTemplate 'CRI.jsp' : Java heap space

et plus rarement :

Exception in thread "Thread-2" java.lang.OutOfMemoryError: Java heap space


En cherchant sur internet, j'ai trouvé qu'il fallait augmenter la taille du "java heap space" avec le paramètre "-Xmx <taille>". Ok, mais impossible de trouver où ! Je ne trouve pas de fichier "startup.sh", pas de scripts de lancement de Tomcat pour fixer la valeur de "CATALINA_OPTS =" ou autres.
 
Donc mes questions sont :
- où régler ce paramètre dans une install Win2003 + Tomcat ?
- quelle est la valeur par défaut ?
- comment vérifier si la nouvelle valeur est bien prise en compte ?
 
Merci pour vos réponses.
 
Ooops, un oubli : la version de Tomcat est la v5.5.25 / JVM v1.6.0b105


Message édité par lsdYoYo le 31-10-2008 à 12:09:35
mood
Publicité
Posté le 31-10-2008 à 11:23:34  profilanswer
 

n°1806826
Taz
bisounours-codeur
Posté le 31-10-2008 à 11:42:54  profilanswer
 

tomcat xmx i feel lucky
 
Windows running Tomcat 5.5 and later : Go to the "Apache Tomcat x.x" folder in the Start Menu. Start the "Configure Tomcat".
Select the "Java" tab in the configuration dialog.
 
    * Server mode: this is determined by the jvm.dll specified in the "Java Virtual Machine" text box. (One should not specify the "-server" or "-client" JVM option.)
      The server .dll is usually placed under a "server" directory in the JRE directory.
      For example: "C:\Program Files\Java\jdk1.5.0_07\jre\bin\server\jvm.dll".
      The complete SDK should be downloaded for this from Sun, as the JRE installers only contain the "client" directory.
    * Maximum heap size:The "Maximum memory pool" text box coresponds to the heap size limit.
      (If using this text box it is not needed to specify "-Xmx" Java option.)
    * Advanced JRE options can be specified in the "Java Options" text area. Append your other Java options at the bottom of the option list.
 
 
bel effort

n°1806859
lsdYoYo
gravity powered
Posté le 31-10-2008 à 12:08:54  profilanswer
 

Un grand merci  :jap:  
 
Bon, ok, je me sens stupide : j'ai trifouillé dans tout un tas de dossiers, de services, de pages web, de registres et pas dans le menu Démarrer.  :sweat:
Bref, j'ai réglé le fameux paramètre -Xmx et, après redémarrage du service, j'ai vérifié avec Tomcat Manager "Etat du serveur" que la nouvelle valeur est bien active.
 
En final, je saurais assez vite si le problème venait bien de là !

n°1806912
sircam
I Like Trains
Posté le 31-10-2008 à 13:26:12  profilanswer
 

C'est peut-être un peu chaud de te contenter de doubler le heap space sans trop savoir si un heap trop petit est la cause du problème.
 
Tu risques de simplement déplacer la limite où ton serveur va se sentir mal. Ca peut aussi passer, mais avec des perfs décevantes si le problème est ailleurs.
 
Tu serais bien inspiré de passer un coup de profiler et de te renseigner sur les autres switches de la JVM...


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1806940
Taz
bisounours-codeur
Posté le 31-10-2008 à 14:05:43  profilanswer
 

sircam a écrit :

C'est peut-être un peu chaud de te contenter de doubler le heap space sans trop savoir si un heap trop petit est la cause du problème.
 
Tu risques de simplement déplacer la limite où ton serveur va se sentir mal. Ca peut aussi passer, mais avec des perfs décevantes si le problème est ailleurs.
 
Tu serais bien inspiré de passer un coup de profiler et de te renseigner sur les autres switches de la JVM...


Cette gestion de taille de tas est foireuse avec Java. T'es obligé de spécifier un max pour le pire des cas, sauf que du coup, le bousin se gave jusqu'à occuper cette valeur. C'est complètement foireux, surtout quand tu as un serveur avec plusieurs applis/process, tu finis toujours par mettre tout le monde à 1200/1400 pour avoir la paix.
 
Donc je sais plus si avec tomcat t'as un truc de suivi de la conso mémoire (comme avec WAS) mais le mieux, c'est encore de suivre les tendances voir si tu vas dans le mur ce soir ou demain.

n°1806996
lsdYoYo
gravity powered
Posté le 31-10-2008 à 16:11:53  profilanswer
 

sircam a écrit :

C'est peut-être un peu chaud de te contenter de doubler le heap space sans trop savoir si un heap trop petit est la cause du problème.

J'en suis bien conscient, mais comme cette appli tournait tranquille depuis plusieurs mois et que les problèmes surviennent avec l'augmentation du nombre de connexions, je me dis que ça vaut le coup d'essayer.
 
Si le problème n'est pas résolu, je chercherais d'autres causes possibles.

n°1807013
el muchach​o
Comfortably Numb
Posté le 31-10-2008 à 16:55:45  profilanswer
 
n°1807258
sircam
I Like Trains
Posté le 01-11-2008 à 15:05:04  profilanswer
 

Taz a écrit :


Cette gestion de taille de tas est foireuse avec Java. T'es obligé de spécifier un max pour le pire des cas, sauf que du coup, le bousin se gave jusqu'à occuper cette valeur.


Pas forcément. Certaines stratégies de garbage collection sont plus agressives et évitent que la JVM se gavent puis que le GC soit obligé de passer un gros coup de balai, avec lag à la clé en général ("stop-the-world garbage collection" ).
 
lsdyoyo > Oui, souvent, on se contente d'agrandir le heap, mais indépendamment d'un OutOfMemory, il est bon de voir si on n'est pas à la limite, ou si on peut améliorer les performances, voir prévenir des soucis ultérieurement.
 
Au passage, sans gros effort, on gagne à régler -Xms en même temps que -Xmx, pour éviter de coûteuses allocations en cours de route (Xms égale à Xmx n'aurait rien de choquant pour un serveur...).
 


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Résolu] Paramétrer le "Java heap space" sur Tomcat

 

Sujets relatifs
Web services en Java[Résolu] link avec lib openssl sous linux
[RESOLU] [PHP] Génération de plusieurs vignettes[Dreamweaver] Centrage de calques [résolu]
[Résolu] Menu et sous menu-dynamique[résolu] Composant loader
[resolu]Verification 'variable || contenu champ table mysql'[Résolu]Débordement d'image dans pdf générer par FOP
[résolu] Problème d'accent avec FOP[Resolu] Pbm de "récupération de paramètres" avec Ajax.Request
Plus de sujets relatifs à : [Résolu] Paramétrer le "Java heap space" sur Tomcat


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR