Je travaille avec tomcat 6.0 et pendant que j'indexe (pas pendant que je démarre tomcat), j'ai une erreur d'espace permgen.
Comment pourrais-je augmenter cet espace ??
Cela se produit généralement lors de nombreux redéploiements. Je suis surpris que vous ayez utilisé quelque chose comme l'indexation. Utilisez virtualvm ou jconsole pour surveiller l'espace de génération Perm et vérifiez qu'il se stabilise après le préchauffage de l'indexation.
Vous devriez peut-être envisager de passer à une autre machine virtuelle Java comme IBM JVM. Il n'a pas de génération permanente et est immunisé contre ce problème.
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 démarrer tomcat. Cela ne peut pas être fait à partir de la configuration tomcat car la JVM est déjà configurée à ce stade.
Peter Tillemans
2
S'il s'agit de 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.
Brian Knoblauch
3
Dans OpenJDK 7 CMSPermGenSweepingEnabled est obsolète en faveur de CMSClassUnloadingEnabled
Petr Gladkikh
12
Pour tomcat, vous pouvez augmenter l'espace permGem en utilisant
-XX:MaxPermSize=128m
Pour cela, vous devez créer (s'il n'existe pas déjà) un fichier nommé setenv.sh dans le dossier tomcat / bin et y inclure la ligne suivante
export JAVA_OPTS="-XX:MaxPermSize=128m"a travaillé pour moi avec Clojure + lein repl
Jeff
3
Vous pouvez également l'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". Ajoutez -XX: MaxPermSize = 512m à la liste des arguments de la VM. Cliquez sur «Appliquer» puis sur «OK». Redémarrez votre serveur.
si vous découvrez que les paramètres de mémoire n'étaient pas utilisés et que pour modifier les paramètres de mémoire, j'ai utilisé le tomcat7w ou tomcat8w dans le dossier \ bin.Ensuite, ce qui suit devrait apparaître:
Cliquez sur l'onglet Java et ajoutez les arguments.
Réponses:
Vous pouvez utiliser :
pour augmenter l'espace. Mais cela ne fait généralement que retarder l'inévitable.
Vous pouvez également activer le PermGen pour être garbage collection
Cela se produit généralement lors de nombreux redéploiements. Je suis surpris que vous ayez utilisé quelque chose comme l'indexation. Utilisez virtualvm ou jconsole pour surveiller l'espace de génération Perm et vérifiez qu'il se stabilise après le préchauffage de l'indexation.
Vous devriez peut-être envisager de passer à une autre machine virtuelle Java comme IBM JVM. Il n'a pas de génération permanente et est immunisé contre ce problème.
la source
Pour tomcat, vous pouvez augmenter l'espace permGem en utilisant
Pour cela, vous devez créer (s'il n'existe pas déjà) un fichier nommé setenv.sh dans le dossier tomcat / bin et y inclure la ligne suivante
Référence: http://wiki.razuna.com/display/ecp/Adjusting+Memory+Settings+for+Tomcat
la source
export JAVA_OPTS="-XX:MaxPermSize=128m"
a travaillé pour moi avec Clojure + lein replVous pouvez également l'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". Ajoutez -XX: MaxPermSize = 512m à la liste des arguments de la VM. Cliquez sur «Appliquer» puis sur «OK». Redémarrez votre serveur.
la source
si vous découvrez que les paramètres de mémoire n'étaient pas utilisés et que pour modifier les paramètres de mémoire, j'ai utilisé le tomcat7w ou tomcat8w dans le dossier \ bin.Ensuite, ce qui suit devrait apparaître:
Cliquez sur l'onglet Java et ajoutez les arguments.
la source
Sur les distributions de type Debian, vous définissez cela dans
/etc/default/tomcat[67]
la source