Estoy buscando en las diversas opciones en torno a la recolección de basura en una VM Java 6 18 y me gustaría algunas sugerencias.Las diversas opciones para resolver problemas de PermGen
Ejecutamos nuestra aplicación en JBoss, y ocasionalmente aparecen los infames errores de PermGen durante las reubicaciones. Existe una gran cantidad de información contradictoria y obsoleta en Internet sobre la mejor manera de resolver o mitigar este problema.
De what I can see, lo siguiente es cierto:
- opciones VM en su propio no van a resolver este problema, sólo se posponga.
- La única manera confiable de solucionar este problema es corregir los errores de codificación en el propio servidor de aplicaciones (improbable) o el código (nuestro código o bibliotecas de terceros) que se ejecuta en el servidor de aplicaciones (más probable). El llenado de Permgen a menudo es el resultado de referencias de objetos cargados por el cargador de clases de la aplicación a objetos cargados por el cargador de clases del Servidor de aplicaciones, evitando así la recolección de basura del cargador de clases de la aplicación.
Tengo dos preguntas que resultan de esto:
- Está por encima de la correcta?
- ¿Dónde entran las opciones de VM
CMSClassUnloadingEnabled
yCMSPermGenSweepingEnabled
? De lo que puedo verCMSClassUnloadingEnabled
reemplaza o implícitamente habilitaCMSPermGenSweepingEnabled
. ¿Alguno de ellos ayuda con el problema anterior?
+1 en la desactivación de implementación en caliente en los servidores de producción. En realidad, tiendo a hacer esto para todo menos para los entornos de estaciones de trabajo de desarrolladores. –