Tip estupido java # 2 – Subirle memoria a tomcat y evitar el error permgen space

Para quienes han programado con J2EE y usan varios frameworks, se habran topado con que despues de varios deploys reciben el error java.lang.OutOfMemoryError: PermGen space.

El problema a diferencia de programar en escritorio es que cada vez que hacemos deploy se regeneran y cargan nuestras clases ocasionando una fuga de memoria digna de java :D.

Error es muy comun, no importando si estamos desarrollando sobre una pc con 1 gb de memoria o sobre un servidor itanium de 64 bits con un monton de memoria RAM, el error radica es que por defecto el area de permgen en las JVM es pequeña, lo cual es suficiente para entornos de uso pero no de desarrollo.

Asi bien debemos alterar los parametros que se le pasan a tomcat para iniciarlo, desde nuestro IDE favorito lo podemos hacer, ya que el mio es netbeans (al menos para java) me limitare a indicar como se hace ahi.

Paso 1 – Ingresar a propiedades de tomcat y agregar este parametro

-XX:MaxPermSize=128m

tomcat_memoria

Con esto nos haremos más productivos y tendremos menos necesidad de reiniciar tomcat (si esperaban más recuerden que de eso se tratan los tips java estupidos :D).

4 respuestas a “Tip estupido java # 2 – Subirle memoria a tomcat y evitar el error permgen space”

  1. Firefox 3.0.11 Firefox 3.0.11 Windows XP Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11

    No le veo lo estupido, y lo que dices no garantiza que el excepcion del out of memory no suceda, otras veces surge porque se da el caso, si estas trabajando con conexion a alguna base de datos no estas cerrando statements o algo asi por el estilo, ya que no estes utilizando algun ORM esto puede pasar, no estoy diciendo que un ORM sea la solucion a todos los problemas porque tambien pasa. Otra solucion para no suceda este error muy frecuentemente es incluir todas las librerias que estas incluyendo en el war dentro de las librerias de la aplicacion, ya que cuando se incluyen en el War por casa session que se abre hace una sobrecarga a memoria.

  2. Firefox 3.5 Firefox 3.5 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1) Gecko/20090624 Firefox/3.5

    @Mario Batres: Seeeee por eso dije que tendemos menos necesidad, pero los tips que vos das tambien estan buenos, todo sea para no reiniciar tomcat (peor si trabajas en windows donde no hay kill)

  3. Firefox 3.0.11 Firefox 3.0.11 Windows XP Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11

    con respecto al post que puse creo que escribi algo mal, causa del sueño digo yo, bueno, las librerias que incluyes en el War es preferiblemente que esten dentro del servidor ya se Tomcat u otro

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *