Tomcat - Tomcat Log - PermGen space


Buenos dias! Seguimos en "El lado oscuro de java" hoy vamos a ver un error que lanza el tomcat cuanto utilizamos algun proyecto web en general.

El error en si es el siguiente:

Exception in thread "http-8080-1" java.lang.OutOfMemoryError: PermGen space


mmm PERMGEN

Espacio PermGen
¿Y qué es el espacio PermGen? La memoria de la Máquina Virtual se divide en varias regiones. Una de estas regiones es el PermGen. Es un area de memoria utilizada para (entre otras cosas) cargar archivos class (y ojo que son clases y no objetos -o instancias de dichas clases-). El tamaño de esta región de memoria es fijo, esto es, no cambia mientras la VM se esté ejecutando. Podemos especificar el tamaño de esta región con un parámetro de línea de comandos: -XX:MaxPermSize=XXXm . El valor por defecto es 64 Mb en la VMs de Sun.
Si hay algún problema con las clases que son recolectadas como basura y continuamos cargando clases, la VM se quedará sin espacio en esta región de memoria, incluso si hay un montón de memoria disponible en el heap. Fijar el parámetro -Xmx no ayudará: este parámetro solo especifica el tamaño total del heap y no afecta al tamapo de la región PermGen.


Tomcat 6.0 tiene la posibilidad de configurar mediante parámetros la configuración de la pila dinámica de memoria.
Las opciones que puede establecer son :
  • Tamaño inicial de la pila de Java : Parámetros -Xms
  • Tamaño máximo de la pila de Java : Parámetro -Xmx
  • Tamaño de la pila de proceso de Java ; Parámetro -Xss
  • Tamaño Máximo Memoria Permanente : Parámetro :  -XX:MaxPermSize
Un Ejemplo :
  • Para establecer un tamaño inicial     de 384Mb  : -Xms384m
  • Para establecer un tamaño máximo de 512Mb  : -Xmx512m
  • Para establecer Memoria Permanente  256Mb  : -XX:MaxPermSize=256m
Solución (En eclipse)

Tomcat Log -  PermGen space


Luego selecciona el tomcat que estamos utilizando y vamos a la solapa argumentos.

Tomcat Log -  PermGen space



 Y finalmente debajo de los parámetros de configuración agregamos:

-Xms512M -Xmx1024M -XX:MaxPermSize=256m

Debería quedar algo así.




Saludos!

Te resulto útil?

Link Relacionados:

Tomcat - Tomcat Log - PermGen space Tomcat - Tomcat Log -  PermGen space Reviewed by El lado oscuro de java on abril 10, 2012 Rating: 5

1 comentario:

Con la tecnología de Blogger.