2012-07-05 17 views
60

Tengo esta máquina virtual con tomcat, java y grails en ella. He estado recibiendo PermGen errores así que busqué y encontré la solución:¿Cómo configuro correctamente el tamaño de permgen?

set JAVA_OPTS="-Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m" 

que usar SSH para acceder a la máquina virtual y escribe los argumentos anteriormente. Supongo que eso solucionaría el problema. La cosa es que quería asegurarme de que lo hice correctamente. Así que busqué otra vez en cómo podría comprobar la PermSize actual y esta es la solución que tengo:

jinfo -flag MaxPermSize 6444 

6444 es el pid, y como respuesta, yo me encargo.

-XX:MaxPermSize=85983232 

Pregunta: ¿El valor de maxPermSize en bytes? porque, si lo es, eso significaría que el comando java_opts no funcionó. Espero obtener 512m pero 85983232 bytes = 82 mb .. ¿O estoy viendo mal ...? ¿Alguien puede aclararme sobre esto? D:

+0

Asumo reinició el proceso Tomcat? Con ps -wwf 6444 puede ver el comando completo que inició el proceso. Verifique que sus opciones estén incluidas. También puede iniciar jconsole (incluido en jdk) y conectarse al proceso, luego verifique la pestaña Información general y la pestaña Memoria. – greyfairer

+0

No reinicié Tomcat. Creo que olvidé ese proceso ... D: Lo siento, soy un poco nuevo en este despliegue. Pero supongo que como desarrollador debería saber este tipo de cosas ... Gracias. :) –

Respuesta

74

usted tiene que cambiar los valores en los CATALINA_OPTS opción definida en el archivo de inicio de Tomcat Catalina. Para aumentar la memoria PermGen, cambie el valor de la variable MaxPermSize; de lo contrario, cambie el valor de la variable Xmx.

& Linux Mac OS: Abra o cree setenv.sh archivo colocado en el directorio "bin". Usted tiene que aplicar los cambios a esta línea:

export CATALINA_OPTS="$CATALINA_OPTS -server -Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m" 

de Windows:

Abrir o crear el archivo setenv.bat colocado en el directorio "bin":

set CATALINA_OPTS=-server -Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m 
+51

En realidad, la forma recomendada de configurar esto es creando un setenv.bat (Windows) o setenv.sh (* nix) y colocando las entradas allí, Tomcat las recogerá y es más fácil administrar una actualización. – Steve

+0

Hay muchas respuestas similares a esta, pero descubrí que esta era la frase más clara y simple, muy útil. – Jeremy

+1

¿Por qué cambiar Xmx aumentar PermGen? – amdev

1

Así que estás haciendo lo correcto en relación con "-XX: MaxPermSize = 512m": de hecho es la sintaxis correcta. Podría tratar de establecer estas opciones directamente en los archivos del servidor Catalyna para que se utilicen en el inicio del servidor.

¡Quizás esta publicación te ayude!

How to make sure that Tomcat6 reads CATALINA_OPTS on Windows?

+0

Estoy usando linux. Pero leeré esto y veré cómo funciona. Muchas gracias por responder. : 3 –

21

No ponga la configuración del entorno en catalina.bat/catalina.sh. En su lugar, debe crear un archivo nuevo en CATALINA_BASE \ bin \ setenv.bat para mantener sus personalizaciones separadas de la instalación de tomcat.

+0

Envié una edición para agregar esto a la respuesta aceptada. –

0

elimina por completo de java + 8
(Cuerdas internados por ejemplo) parcialmente retirado de Java 7
source

Cuestiones relacionadas