Heap da JVM não liberado

Eu sou novo na análise de problemas de memória em Java. Então me perdoe se esta pergunta parecer ingênua

Eu tenho o aplicativo em execução com os seguintes parâmetros da JVM definidos:

-Xms3072m -Xmx3072m 
-XX:MaxNewSize=1008m -XX:NewSize=1008m 
-XX:PermSize=224m -XX:MaxPermSize=224m -XX:SurvivorRatio=6 

Estou usando o visualVM para monitorar o uso: Aqui está o que vejo

O problema é que, mesmo quando o aplicativo não está recebendo dados para processamento, a memória usada não diminui. Quando o aplicativo é iniciado, o espaço usado é baixo (cerca de 1 GB), mas cresce à medida que o aplicativo está sendo executado. e a memória usada nunca diminui. Minha pergunta é por que a memória heap usada não fica inativa mesmo quando nenhum processo importante ocorre no aplicativo e quais configurações podem ser definidas para corrigi-lo. Meu entendimento é que, se o aplicativo não estiver processando, o heap usado deve ser menor e a memória heap disponível (ou heap máx) deve permanecer a mesma (3 GB) nesse caso.

questionAnswers(1)

yourAnswerToTheQuestion