Aumentar o espaço de permgen

88

Estou trabalhando com o tomcat 6.0 e, enquanto estou indexando (não enquanto estou iniciando o tomcat), tenho um erro de espaço permgen.
Como eu poderia aumentar esse espaço ??

obrigado

Blanca
fonte
Já verifiquei perguntas semelhantes antes, mas não me ajudem. Para onde vai -XX: NewSize = 2.125m?
Blanca

Respostas:

142

Você pode usar :

-XX:MaxPermSize=128m

para aumentar o espaço. Mas isso geralmente apenas adia o inevitável.

Você também pode ativar o PermGen para a coleta de lixo

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

Normalmente, isso ocorre ao fazer muitas reimplantações. Estou surpreso que você o tenha usando algo como indexação. Use virtualvm ou jconsole para monitorar o espaço de Perm gen e verifique se ele está nivelado após o aquecimento da indexação.

Talvez você deva considerar mudar para outro JVM como o IBM JVM. Ele não tem uma geração permanente e está imune a esse problema.

Peter Tillemans
fonte
Obrigado!! Mas onde devo escrever ?? Acho que em um flile aqui: tomcat / conf Estou errado?
Blanca
1
Para o tomcat você pode criar uma variável de ambiente CATALINA_OPTS com como valor essas opções concatenadas. O script de inicialização irá adicioná-los à linha de comando Java antes de iniciar o tomcat. Isso não pode ser feito a partir da configuração do tomcat, pois a JVM já está configurada nesse ponto.
Peter Tillemans
2
Se for FreeBSD, adicione as opções ao arquivo /etc/rc.conf. Primeiro leia o script de inicialização do tomcat para ver o parâmetro exato que ele estará procurando.
Brian Knoblauch
3
No OpenJDK 7, CMSPermGenSweepingEnabled foi descontinuado em favor de CMSClassUnloadingEnabled
Petr Gladkikh
12

Para o tomcat, você pode aumentar o espaço de permGem usando

 -XX:MaxPermSize=128m

Para isso, você precisa criar (se ainda não existir) um arquivo chamado setenv.sh na pasta tomcat / bin e incluir a seguinte linha nele

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

Referência: http://wiki.razuna.com/display/ecp/Adjusting+Memory+Settings+for+Tomcat

Paroksh Saxena
fonte
1
export JAVA_OPTS="-XX:MaxPermSize=128m"trabalhou para mim com Clojure + lein repl
Jeff
3

Você também pode aumentá-lo por meio dos argumentos VM em seu IDE. No meu caso, estou usando o Tomcat v7.0, que está sendo executado no Eclipse. Para fazer isso, clique duas vezes no seu servidor (Tomcat v7.0). Clique no link 'Abrir configuração de inicialização'. Vá para a guia 'Argumentos'. Adicione -XX: MaxPermSize = 512m à lista de argumentos da VM. Clique em 'Aplicar' e depois em 'OK'. Reinicie seu servidor.

user3375152
fonte
3

se você descobriu que as configurações de memória não estavam sendo usadas e para alterar as configurações de memória, usei o tomcat7w ou tomcat8w na pasta \ bin. Em seguida, deve aparecer o seguinte:

monitor tomcat

Clique na guia Java e adicione os argumentos.restart tomcat

Kevin STS
fonte
@ Jérémie BI não tem ponto de reputação suficiente para adicionar imagem diretamente.
Kevin STS
0

Em distribuições como o Debian, você define isso em /etc/default/tomcat[67]

der_do
fonte