Mon application montre la taille de la "vieille génération" de la «vieille génération», et lorsque cela atteint la limite maximale pour «Old Gen», la taille de la permène augmente soudainement. Voici mes grésings de génération:
PS Perm Gen Type Non-heap memory Usage init = 16777216(16384K) used = 254453736(248489K) committed = 504954880(493120K) max = 629145600(614400K) Peak Usage init = 16777216(16384K) used = 254453736(248489K) committed = 504954880(493120K) max = 629145600(614400K) Collection Usage init = 16777216(16384K) used = 252421536(246505K) committed = 504954880(493120K) max = 629145600(614400K)
3 Réponses :
Utilisez JMAP pour effectuer une mémoire de mémoire avant de redémarrer votre serveur et d'analyser avec Eclipse Mat < / p>
Je suivirais les conseils de Leonm pour analyser ce qui prend tellement de mémoire. Je parie que vous avez une sorte de fuite de mémoire méchante. P>
Vous dites que vous ne faites pas de classement de fantaisie, mais Hibernate génère des classes à la volée pour vous. Utilisez-vous des fonctionnalités AOP (par exemple du module de ressort AOP?). p>
Fondamentalement, si vous êtes à court d'espace Permgen, il semble que votre application continue à produire de nouvelles classes (car il s'agit de classes stockées à Permgen). p>
J'essaierais Jmap ce soir et mettre à jour .. Nous n'utilisons pas le Spring AOP, mais utilisez des haricots de printemps (qui sont supposés être des singletons, je ne sais pas si ce sont un facteur contributif) .. Aussi, pourriez-vous ou quelqu'un jeter la lumière sur ce qui se passe quand "vieux général" est des ordures recueillies? Le JVM a-t-il mis des collections de «vieux général» à Permgen? My Permgen Spike ne vient que lorsque la collecte se produit de «Old Gen», diminuez également de la taille de la taille de Oldgen.
Permgen est divulguée si vous continuez à déployer / interployer des applications sur Appserver. p>
Vérifiez ce lien pour une plus grande explication sur la manière dont il ne s'agit pas de la faute de l'Appserver. P>
http://blogs.oracle.com/fkieviet/enterry/classloader_leaks_the_dreaded_java p>
Je ne me déploie jamais sur une tomcat en cours d'exécution, désolé de ne pas avoir mentionné que plus tôt
Permgen a la plupart des définitions de classe. Je me demande quel genre d'application vous avez?
Autant que je sache, la maxpermsize ne peut pas être plus de 256 Mo ...
@Bozhidar: pas vrai, la taille de Permgen peut être beaucoup plus grande que celle