![]() |
| 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é. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: septembre 2006
Messages: 237
|
Saut tout le monde,
J'ai un serveur Tomcat 6.0.16. j'ai dessus environs 7 applications et de temps en temps il me genere cette exeption Code :
Horrible Exception: java.lang.OutOfMemoryError: PermGen space J'ai essayé de palier au probléme en inscrivant dans le catalina.bat en inscrivant Code :
JAVA_OPS -XMX1280 Merci pour votre aide
__________________
=================================== ===Accroche ta charrue à l'Open source=== =================================== |
|
|
|
|
|
#2 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: mars 2006
Messages: 285
|
J'ai eu ce pb et cela venait de thread non clôturés à savoir:
- resultset non clos (je passais la connexion en paramètre et elle était close)) - pb d'enregistrement de données dans un fichier properties Pour le premier point en scrutant le code ça a été vite traité mais pour le second point c'est la chance. Il te faudrai essayer de cerner l'appli(s) qui fou le bazard par éléminination et la passer éventuellement au profiler si tu es sur du code. Courage pour moi ça a duré 6 mois pour une appli. |
|
|
|
|
|
#3 (permalink) |
|
Membre régulier
![]() ![]() Date d'inscription: juillet 2007
Messages: 113
|
Pour augmenter le PermGen, il te faut plutôt utiliser l'argument "-XX:MaxPermSize", par exemple en mettant "-XX:MaxPermSize=256m".
Par défaut le PermGen n'est pas très gros, donc si tu as beaucoup d'applications ce n'est pas forcément certain que tu aies un soucis. Regarde plutôt celles qui utilisent Hibernate, Spring, ou de l'AOP, généralement ce sont celles-là qui font monter ton PermGen. Regarde également si ton PermGen n'augmente pas quand tu redéploye une application à chaud, c'est un problème fréquent. |
|
|
|
|
|
#4 (permalink) | |
|
Membre Confirmé
![]() Date d'inscription: septembre 2006
Messages: 237
|
Citation:
En attendant une solution à ce probleme jai mis un cron tab qui redemare le server chaque 4h. Je recherche toujours la solution
__________________
=================================== ===Accroche ta charrue à l'Open source=== =================================== |
|
|
|
|
|
|
#5 (permalink) |
|
Membre habitué
![]() Date d'inscription: octobre 2005
Localisation: Lorraine
Âge: 36
Messages: 154
|
Après plusieurs recherches j'ai trouvé ce poste qui explique le mécanisme de déploiement à chaud :
Les mécanismes de déploiement à chaud ou d'interception impliquent généralement la génération de classes (.class) par des bibliotheques telle asm, cglib. Tout ces nouveaux objets sont instanciés dans une zone spéciale de la JVM, la mémoire permanente, PermGen. Apres plusieurs utilisations, ces mécanisment peuvent provoquer un remplissage complet de cette zone et provoquer des erreurs du type PermGen Out of Space. Deux solutions: * augmenter cette zone avec les parametres -XXermSize -XX:MaxPermSize, mais cela reste un pansement, tôt ou tard, la PermGen sera pleine * permettre à la JVM d'effectuer des déchargements et du nettoyage de ces objets: -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled Issu du post suivant : http://www.developpez.net/forums/d42...ation-memoire/ |
|
|
|
|
|
#6 (permalink) | |
|
Membre Confirmé
![]() Date d'inscription: septembre 2006
Messages: 237
|
Citation:
__________________
=================================== ===Accroche ta charrue à l'Open source=== =================================== |
|
|
|
|
|
|
#8 (permalink) |
|
Membre régulier
![]() ![]() Date d'inscription: juillet 2007
Messages: 113
|
Oui, ce que dit aperrin est 100% le problème. Je parlais d'Hibernate et Spring, par exemple, car ces librairies utilisent CGlib pour générer du code à la volée (attention, ce n'est pas toujours vrai, cela dépend de votre config).
Mais si vous avez des versions stables de ces librairies, vous ne devriez pas avoir de problème, et un MaxPermSize de 1 giga c'est absolument énorme. Bref vous devriez regarder vos 7 applications plus en détail, il y en a une qui doit utiliser ce type de mécanisme d'une manière complètement folle... Vous pourriez les isoler une à une (en mettant un deuxième Tomcat, avec un Apache devant pour load balancer entre vos deux Tomcat). Ainsi vous verriez laquelle a un souci. |
|
|
|
|
![]() |
![]() |
||
Horrible Exception: java.lang.OutOfMemoryError: PermGen space
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|