Ola bom dia,
uma breve explicação :
PS Eden Space - todo objeto criado é jogado para este local do heap
PS Suvivor Space - após a primeira passada do GC os objetos sobreviventes são alocados nesta área do heap
PS Old Gen - após o GC passar uma certa quantia de vezes no “survivor space” os objetos são copiados para esta área
PS Perm Gen - Aqui é onde fica todo o core do java, como classes nativas o proprio rt.jar é carregado aqui, o pool de string, os classloaders e as classes do programa. --> o GC passa nesta parte mas com pouca frequencia
–Agora vamos para a analise, primeiramente existem poucas informações para podermos fazer uma analise assertiva, mas olhando por cima tive duas conclusões:
1° Uma aplicação é de alto consumo de memoria, por exemplo, ela guarda muita coisa em cache, carrega objetos grandes em memoria e utiliza em toda a aplicação, mantendo sempre uma referencia para o mesmo, esse tipo de coisa.
2° existe um leak de memoria, algumas referencias não estão sendo liberadas, carregando muitas coisas na memoria e não permitindo que o GC colete estes objetos.
no gráfico podemos observar que existe momentos em que a memoria é liberada, mas isso talvez seja devido a algum fator externo a aplicação.
Mas como eu disse são palpites, pois não podemos ter ctz com apenas essas informações, eu aconselho vc utilizar um profiling também, para poder ver quais as classes e métodos estão consumindo tantos recursos assim, para poder efetuar uma analise de fonte, assim poderia ter informações mais concretas
flw 