¿Por qué el recolector de basura no realiza una recolección de basura más agresiva antes que el% de pila de un solo dígito?
Estas son las configuraciones de mi JVM de Sun Hotspot 1.6 en WebLogic 11g:
-Xms10g -Xmx10g -XX:MaxPermSize=256m -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:ConcGCThreads=2
Lo que estoy viendo en el gráfico de% de pila libre de JVM durante 24 horas es básicamente que el% de pila libre disminuye a un ritmo lento hasta que alcanzamos aproximadamente el 9% (toma aproximadamente 24 horas). Luego, el sistema está ejecutando lo que parece un gc completo y vuelve al 97%.
¿Debo agregar / modificar alguna configuración que le indique a la JVM que realice este GC completo antes de que obtengamos menos del 10% de almacenamiento gratuito? p.ej. alguna configuración de relación?
No causa problemas y espera hasta que obtengamos un 9% de libertad, pero hace que sea más difícil monitorear / alertar. Lo ideal es que nos mantengamos más altos que el 30% gratis en todo momento para que, si bajamos a esos números de un solo dígito, sepamos que existe algún tipo de problema, por ejemplo. pérdida de memoria.