Meu palpite seria threads descontrolados talvez, provavelmente provavelmente melhor estouro de pilha em como fazer o perfil de uso de memória para um aplicativo Java e procurar por vazamentos de memória.
Lembre-se de que as opções -Xms
e -Xmx
são apenas para heap. Há outras coisas que ocupam memória, como pilhas de encadeamentos, etc. Então, talvez houvesse tópicos de fuga?
Você pode querer olhar para o ulimit para limitar o que este aplicativo pode fazer e começar a usar algo como o Nagios para alertá-lo quando o uso da memória ficar fora de controle. Você está executando o jvm como root?