Buscar
Social
Ofertas laborales ES
« Los mejores sectores para trabajar en el mundo IT en Estados Unidos | Main | JavaFXtras 0.6: componentes para JavaFX »
miércoles
abr072010

Nuevo mecanismo anti memory leaks en Tomcat 6

Mark Thomas ha escrito en TomcatExpert un interesante artículo sobre una de las mejoras en Tomcat 6.0.25 y superior.  Esta mejora se enfoca a uno de los aspectos más criticados de este servidor Java: los memory leaks en el PermGen. Mark y la gente en SpringSource se pusieron a trabajar para detectar las causas de estos leaks y al final descubrió que eran ocasionados por una mezcla de bugs entre código aplicativo (los wars desplegados), código de librerías y la propia JVM.

Al intentar ver cómo resolver estos problemas,  se dieron cuenta que se podía implementar una estrategia para no solo detectar estos memory leaks en runtime sino corregirlos. El resultado son dos estrategias:

JreMemoryLeakPreventionListener Cuando una aplicación web llama a uno de los APIs estándares de Java que guardan una referencia al class loader que las carga, el loader de dicha aplicación web se queda en memoria ocasionando un memory leak. Este listener simplemente asegura que el primero en llamar a dichas APIs sea el classloader de Tomcat, evitando estos leaks.

La segunda estrategia es bastante interesante, detecta cuando una aplicación web es detenida, recargada o undeployed para revisar en ese momento via algunas APIs y Reflection por causas comunes de memory leaks y reparlas. Hay una explicación detallada en el wiki del proyecto donde se detalla más esta estrategia. 

Buen trabajo el de los comitters de Tomcat, sin embargo esto es un trabajo en progreso e irá mejorando en el futuro. 

Reader Comments

There are no comments for this journal entry. To create a new comment, use the form below.
Comentarios deshabilitados
Comentarios deshabilitados en esta noticia.