Почему сборщик мусора не выполняет более агрессивную сборку мусора раньше, чем одна куча без цифр%?
Вот мои настройки кучи Sun Hotspot 1.6 JVM в WebLogic 11g:
-Xms10g -Xmx10g -XX:MaxPermSize=256m -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:ConcGCThreads=2
То, что я вижу на графике% свободного кучи JVM в течение 24 часов, в основном% свободного кучи, снижается с медленной скоростью, пока мы не достигнем около 9% (занимает около 24 часов). Затем система работает, что выглядит как полный gc и возвращается к 97%.
Есть ли какая-то настройка, которую я должен добавить / изменить, которая скажет JVM сделать этот полный GC раньше, чем когда у нас будет меньше 10% кучи? например некоторые настройки отношения?
Он не вызывает проблем, поскольку он ждет, пока мы не освободимся на 9%, но это усложняет мониторинг / оповещение. В идеале мы хотим всегда оставаться выше, чем, скажем, на 30% бесплатно, поэтому, если мы перейдем к этим однозначным числам, мы узнаем, что есть какая-то проблема, например, утечка памяти.