¿Cómo puedo configurar correctamente el tamaño de permgen?


Tengo esta máquina virtual con tomcat, java y grails en ella. He estado recibiendo errores de permgen, así que miré alrededor y encontré la solución:

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

Uso SSH para acceder a la vm y escribir los argumentos anteriores. Supongo que eso solucionaría el problema. La cosa es que quería asegurarme de que lo hice correctamente. Así que busqué de nuevo en cómo podría comprobar el PermSize actual y esta es la solución que tengo:

jinfo -flag MaxPermSize 6444

6444 es el pid, y como respuesta, recibí esto.

-XX:MaxPermSize=85983232

Pregunta: Es ¿el valor del MaxPermSize en bytes? porque, si lo es, entonces eso significaría que el comando java_opts no funcionó. Estoy esperando obtener 512m pero 85983232 bytes = 82 mb.. O lo estoy viendo mal..? ¿Alguien puede aclararme esto? D:

Author: 황현정, 2012-07-05

4 answers

Debe cambiar los valores en la opción CATALINA_OPTS definida en el archivo de inicio 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: Abrir o crear setenv.sh archivo colocado en el directorio "bin". Tienes que aplicar los cambios a esta línea:

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

Windows:

Abra o cree el archivo setenv.bat colocado en el " bin" directorio:

set CATALINA_OPTS=-server -Xms256m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=512m
 74
Author: amicngh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-26 19:36:27

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

 21
Author: matabares,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-15 02:04:43

Así que está haciendo lo correcto con respecto a "-XX:MaxPermSize=512m": es de hecho la sintaxis correcta. Puede intentar establecer estas opciones directamente en los archivos del servidor Catalyna para que se utilicen al iniciar el servidor.

Tal vez este post le ayudará!

¿Cómo asegurarse de que Tomcat6 lee CATALINA_OPTS en Windows?

 1
Author: Loic O.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:17:38

Completamente eliminado de java 8 +
Parcialmente eliminado de java 7 (cadenas interned, por ejemplo)
fuente

 -1
Author: Mykhaylo Adamovych,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-23 15:38:40