Mostrando entradas con la etiqueta tomcat. Mostrar todas las entradas
Mostrando entradas con la etiqueta tomcat. Mostrar todas las entradas

Cómo configurar el uso de memoria de un servidor en Eclipse

0 comentarios
Antes de irme de fin de semana -qué ganas- dejo una chuletilla sobre cómo modificar la configuración de arranque y el uso de memoria de un servidor en Eclipse y en general.

Recuerda que la JVM usa 2 tipos de memoria. La memoria Heap donde se crean los objetos y que es gestionada por el GargabeCollector que se encarga de liberar memoria en caso necesario. Y la memoria PermGen que se utiliza principalmente para cargar las definiciones de las clases de forma permanente, pero también para trabajar con código nativo.

1) En Eclipse, ir a: Run -> Run configurations -> TuServidor -> Arguments -> VM Arguments

2) Para evitar el clásico java.lang.OutOfMemoryError: Java Heap space, usar las opciones de la VM:

-Xms64m
-Xmx256m

Es un ejemplo que asigna 64mb a la memoria heap de inicio y le permite crecer hasta un máximo de 256mb. Esta configuración debería ser más que suficiente si estás en desarrollo y sólo tienes una aplicación configurada para arrancar en el servidor. Antes de incrementarla, tómate unos segundos para meditar si el fallo pudiera ser causa de un memory leak.

3) Para evitar el igualmente clásico java.lang.OutOfMemoryError: PermGen space, usar las opciones de la VM:

-XX:PermSize=64m
-XX:MaxPermSize=128m

Es un ejemplo que asigna 64mb a la memoria perm de inicio y le permite crecer hasta un máximo de 128mb. De nuevo, este ejemplo debería ser más que suficiente si sólo tienes un par de aplicaciones configuradas en el servidor. Aunque todo dependerá del número de despliegues en caliente que realices habitualmente sin reiniciar el servidor.

Otra opción es intentar que el garbage collector recicle la memoria permgen. Para ello prueba a activar el recolector concurrente con los siguientes parámetros:

-XX:+UseConcMarkSweepGC
-XX:+CMSPermGenSweepingEnabled
-XX:+CMSClassUnloadingEnabled


Finalmente un par de enlaces a las páginas oficiales de opciones de la VM y la guía de tuning del gc de la jvm 5.

Tiempo de vida por defecto para una sesion en Tomcat

2 comentarios

Una de las cosas que suelen olvidarse durante el desarrollo de una nueva aplicación web es configurar el tiempo de vida o timeout de la sesión http en el fichero web.xml de la aplicación. Y si esto pasa, ¿habrá timeout o no? Y si lo hay ¿cuándo?

Pues ésto es lo último que he aprendido. En Tomcat existe un fichero web.xml para todos los valores por defecto no fijados en los web.xml de cada aplicación. Se encuentra en la carpeta conf. Si echamos un vistazo por él, encontraremos esto:

<session-config>
<session-timeout>30</session-timeout>
</session-config>

Así que la respuesta es... 30 minutos, qué máquinas! Si queremos modificarlo, añadimos la configuración en el web.xml de nuestra aplicación con el valor deseado, -1 para no tener timeout. Pero esto seguro que ya lo sabiais.