Por que o coletor de lixo não está fazendo uma coleta de lixo mais agressiva antes do que a porcentagem livre?

Estas são as configurações do heap da minha JVM do Sun Hotspot 1.6 no WebLogic 11g:

-Xms10g -Xmx10g -XX:MaxPermSize=256m -XX:+UseParNewGC -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:ConcGCThreads=2

O que estou vendo no gráfico% de pilha livre da JVM por 24 horas é basicamente livre de heap. O% desce a uma taxa lenta até atingirmos cerca de 9% (leva cerca de 24 horas). Então o sistema está executando o que parece ser um gc completo e retorna para 97%.

Existe alguma configuração que devo adicionar / modificar que diga à JVM para fazer esse GC completo mais cedo do que quando ficarmos abaixo de 10% de heap livre? por exemplo. alguma configuração de relação?

Não está causando problemas que aguarda até chegarmos a 9% grátis, mas dificulta o monitoramento / alerta. Idealmente, queremos permanecer acima de 30% de liberdade em todos os momentos, de modo que, se cairmos nesses números de dígitos únicos, sabemos que há algum tipo de problema, por exemplo, vazamento de memória.