2010-06-09 5 views
85

Je travaille avec Tomcat 6.0, et pendant que j'indexe (pas pendant que je commence tomcat), j'ai une erreur d'espace permgen.
Comment pourrais-je augmenter cet espace ??Augmenter l'espace permgen

Merci

+0

question similaire I avant contrôlées après, mais ne me aide pas. Où est -XX: NewSize = 2.125m? – Blanca

+0

duplication possible de [Gérer l'erreur "java.lang.OutOfMemoryError: PermGen space"] (http://stackoverflow.com/questions/88235/dealing-with-java-lang-outofmemoryerror-permgen-space-error) – Raedwald

Répondre

139

Vous pouvez utiliser:

-XX:MaxPermSize=128m 

pour augmenter l'espace. Mais cela ne fait que retarder l'inévitable.

Vous pouvez également activer le PermGen soient nettoyés

-XX:+UseConcMarkSweepGC -XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled 

Cela se produit généralement lorsque vous faites beaucoup de redéploie. Je suis surpris que vous l'ayez en utilisant quelque chose comme l'indexation. Utilisez virtualvm ou jconsole pour surveiller l'espace perm gén et vérifiez qu'il se stabilise après l'échauffement de l'indexation. Peut-être que vous devriez envisager de passer à une autre JVM comme la JVM IBM. Il n'a pas de génération permanente et est immunisé contre ce problème.

+0

Merci !! Mais où dois-je l'écrire ?? Je suppose que dans un flile ici: tomcat/conf Ai-je tort ?? – Blanca

+1

Pour tomcat vous pouvez créer une variable d'environnement CATALINA_OPTS avec comme valeur ces options concaténées. Le script de démarrage les ajoutera à la ligne de commande Java avant de lancer tomcat. Cela ne peut pas être effectué à partir de la configuration de Tomcat car la JVM est déjà configurée à ce moment-là. –

+0

Si c'est FreeBSD, ajoutez les options au fichier /etc/rc.conf. Lisez d'abord le script de démarrage de Tomcat pour voir le paramètre exact qu'il recherchera. –

11

Pour tomcat, vous pouvez augmenter l'espace permGem en utilisant

-XX:MaxPermSize=128m 

Pour cela, vous devez créer (si existe pas déjà) un fichier nommé setenv.sh dans tomcat/bin et inclure la ligne suivante dans ce

export JAVA_OPTS="-XX:MaxPermSize=128m" 

Référence: http://wiki.razuna.com/display/ecp/Adjusting+Memory+Settings+for+Tomcat

+1

'export JAVA_OPTS =" - XX: MaxPermSize = 128m "' travaillé pour moi avec Clojure + lein repl – Jeff

3

Vous pouvez également augmenter via les arguments VM dans votre IDE. Dans mon cas, j'utilise Tomcat v7.0 qui fonctionne sur Eclipse. Pour ce faire, double-cliquez sur votre serveur (Tomcat v7.0). Cliquez sur le lien "Ouvrir la configuration de lancement". Allez dans l'onglet "Arguments". Ajouter -XX: MaxPermSize = 512m à la liste d'arguments VM. Cliquez sur "Appliquer", puis sur "OK". Redémarrez votre serveur.

2

si vous avez trouvé que les paramètres de la mémoire ne sont pas utilisés et pour modifier les paramètres de la mémoire, j'ai utilisé le tomcat7w ou tomcat8w dans le répertoire \ bin folder.Then ce qui suit devrait apparaître:

tomcat monitor

Cliquez sur l'onglet Java et ajoutez la tomcat arguments.restart

+0

@ Jérémie B Je n'ai pas assez de point de réputation pour ajouter une image directement. –

0

sur les distributions Debian comme vous définissez que /etc/default/tomcat[67]

Questions connexes