Problemas con PermGen
Publicado: Vie, 21/11/2008 - 22:52Uno de los problemas recurrentes de los servidores de aplicaciones, y que ni siquiera profesionales certificados en Java me han sabido resolver, es el error de memoria agotada en PermGen. El caso es que el servidor se rompe y hay que reiniciarlo, solución nada aconsejable en entornos de producción.
Pues bien, tras algunas búsquedas y lecturas varias, he hallado la solución al problema, y lo que es mejor, una explicación detallada de todo el proceso. Al parecer, el recolector de basura de Java es generacional. Existen cuatro generaciones o etapas: eden, young, old y permanent. De izquierda a derecha, la diferencia fundamental (que no la única) es que el recolector de basura pasa con menos frecuencia que en la anterior. Como ya sabía el lector avezado, por la generación permanente no pasa nunca, así que cuando se llena, salta la conocida excepción que muchos tememos.
El artículo explica detalladamente cómo evitarlo para volver a dormir tranquilos.
Actualización 10/06/2010. He encontrado un artículo que explica magistralmente, y con ejemplos, las causas y soluciones del problema a nivel de implementación.