miércoles, 10 de octubre de 2012

Fallo en Tomcat7 java.lang.OutOfMemoryError: PermGen

Cuando nos encontramos en Tomcat con el fallo "java.lang.OutOfMemoryError: PermGen" es que nos hemos quedado sin espacio en una de las memorias que usa Tomcat dentro de la JVM. Es harina de otro post explicar como se separa entre PermGen, Head, etc el uso de memorias, pero para solucionar este fallo en Tomcat 7, nos vamos al catalina.sh que suele estar en /usr/share/tomcat7/bin/ y lo editamos con el editor que más nos guste, nano, vi, etc. y añadimos lo siguiente:
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1536m  -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"
El archivo nos quedaría algo así:

# $Id: catalina.sh 1146069 2011-07-13 14:47:32Z markt $
# -----------------------------------------------------------------------------

JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1536m -Xmx1536m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"

# OS specific support.  $var _must_ be set to either true or false.
cygwin=false
darwin=false
os400=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac
Lo que estamos haciendo es ampliar la memoria de PermGen por defecto como máximo a 64 Megas pasarla a 256 y con esto solucionamos la mayoría de nuestros problemas de este tipo.

No hay comentarios :

Publicar un comentario